for文で繰り返し処理を学ぼう

学習の目標

本章では、以下の内容を学習します。

  • for文を使った繰り返し処理の基本概念を理解する
  • range関数の使い方と数値の繰り返しを習得する
  • 繰り返し回数を指定する方法を学ぶ
  • for文を使って実用的なプログラムを作成する
  • 九九の表示プログラムの作成方法を学ぶ

はじめに

これまでに変数やif文を学んできましたが、プログラムの中でよくある処理に「同じ作業を何度も繰り返す」というものがあります。

例えば、1から10までの数字を表示したい場合を考えてみましょう。 今までの知識だけでプログラムを作ると、このようになってしまいます。

VS Codeでrepeat_test.pyというファイルを作成し、以下のコードを入力してみましょう。

print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)

このプログラムを実行すると、確かに1から10までの数字が表示されます。

1
2
3
4
5
6
7
8
9
10

しかし、これは非常に非効率的です。 もし1から100まで表示したいとしたら、printを100回書く必要があります。

このような同じ処理を繰り返す場面で活躍するのがfor文です。 for文を使うことで、同じ処理を指定した回数だけ効率的に実行できるようになります。

for文の基本構文

for文の基本的な書き方を見てみましょう。 VS Codeでfor_basic.pyというファイルを作成し、以下のコードを入力してください。

for i in range(5):
    print(i)

このプログラムを実行すると、以下のような結果が表示されます。

0
1
2
3
4

このfor文の構造を詳しく見ていきましょう。

forはPythonの予約語で、繰り返し処理を開始することを示しています。

iは変数名で、繰り返しの度に値が変化します。 この変数名は自由に決められますが、慣習的にiがよく使われます。

inもPythonの予約語で、「〜の中から」という意味を表します。

range(5)は0から4までの数字を順番に作り出す機能です。 このため、iには0、1、2、3、4が順番に代入されます。

最後の行の頭にあるスペース(インデント)も重要です。 Pythonでは、同じ処理をまとめるためにインデントを使います。

range関数の詳しい使い方

range関数は繰り返し処理でよく使われる便利な機能です。 いくつかの使い方を覚えておきましょう。

VS Codeでrange_examples.pyというファイルを作成し、以下のコードを順番に入力してみてください。

# 0から4まで(5回繰り返し)
print("0から4まで:")
for i in range(5):
    print(i)

まずこの部分を実行すると、先ほどと同じ結果が表示されます。

0から4まで:
0
1
2
3
4

次に、開始値を指定する方法を試してみましょう。 同じファイルに以下を追加してください。

# 1から5まで
print("\n1から5まで:")
for i in range(1, 6):
    print(i)

この場合、range(1, 6)は1から5までの数字を作り出します。 注意点は、終了値の6は含まれないということです。

実行結果は以下のようになります。

1から5まで:
1
2
3
4
5

さらに、ステップ(増加幅)を指定することもできます。 同じファイルに以下を追加してください。

# 2ずつ増やしながら
print("\n2ずつ増加:")
for i in range(0, 10, 2):
    print(i)

このrange(0, 10, 2)は、0から8まで2ずつ増加する数字を作り出します。

実行結果は以下のようになります。

2ずつ増加:
0
2
4
6
8

for文を使った実用的な例

for文の基本がわかったところで、もう少し実用的な例を作ってみましょう。

数の合計を計算する

VS Codeでsum_numbers.pyというファイルを作成し、以下のコードを入力してください。

# 1から10までの数字の合計を計算
total = 0

for i in range(1, 11):
    total = total + i
    print(f"{i}まで: {total}")

print(f"\n最終的な合計: {total}")

このプログラムは、1から10までの数字を順番に足していき、最終的な合計を表示します。

実行結果は以下のようになります。

1まで: 1
2まで: 3
3まで: 6
4まで: 10
5まで: 15
6まで: 21
7まで: 28
8まで: 36
9まで: 45
10まで: 55

最終的な合計: 55

このプログラムでは、totalという変数に値を蓄積していく処理を行っています。 total = total + iの部分で、現在の合計値に新しい数字を加えています。

カウントダウンプログラム

次に、カウントダウンプログラムを作ってみましょう。 VS Codeでcountdown.pyというファイルを作成し、以下のコードを入力してください。

print("カウントダウン開始!")

for i in range(10, 0, -1):
    print(i)

print("発射!")

このプログラムでは、range(10, 0, -1)を使って10から1まで逆順に数えています。 第3引数の-1は、1ずつ減らしていくことを示しています。

実行結果は以下のようになります。

カウントダウン開始!
10
9
8
7
6
5
4
3
2
1
発射!

九九の表を作ってみよう

for文の応用として、九九の表を作成してみましょう。 VS Codeでmultiplication_table.pyというファイルを作成し、以下のコードを入力してください。

# 九九の表(2の段)
print("2の段:")
for i in range(1, 10):
    result = 2 * i
    print(f"2 × {i} = {result}")

まず2の段だけを作成してみます。 このプログラムを実行すると、以下のような結果が表示されます。

2の段:
2 × 1 = 2
2 × 2 = 4
2 × 3 = 6
2 × 4 = 8
2 × 5 = 10
2 × 6 = 12
2 × 7 = 14
2 × 8 = 16
2 × 9 = 18

ここで使っているf"2 × {i} = {result}"は、f文字列という機能です。 文字列の中に{}で囲んだ変数の値を挿入できる便利な機能です。

次に、好きな段を作れるプログラムに改良してみましょう。 同じファイルに以下を追加してください。

# ユーザーが指定した段
print("\n好きな段を作成:")
dan = int(input("何の段を作りますか?: "))

print(f"\n{dan}の段:")
for i in range(1, 10):
    result = dan * i
    print(f"{dan} × {i} = {result}")

このプログラムを実行すると、ユーザーが入力した数の段を表示してくれます。

好きな段を作成:
何の段を作りますか?: 7

7の段:
7 × 1 = 7
7 × 2 = 14
7 × 3 = 21
7 × 4 = 28
7 × 5 = 35
7 × 6 = 42
7 × 7 = 49
7 × 8 = 56
7 × 9 = 63

for文を使う際の注意点

for文を使う際に注意すべき点がいくつかあります。

インデントの重要性

Pythonでは、for文の中で実行する処理をインデント(行の始めのスペース)で表現します。 VS Codeでindent_example.pyというファイルを作成し、以下のコードを入力してください。

print("繰り返し開始")

for i in range(3):
    print(f"これは繰り返しの中: {i}")
    print("これも繰り返しの中")

print("これは繰り返しの外")

実行結果は以下のようになります。

繰り返し開始
これは繰り返しの中: 0
これも繰り返しの中
これは繰り返しの中: 1
これも繰り返しの中
これは繰り返しの中: 2
これも繰り返しの中
これは繰り返しの外

インデントがある行は繰り返しの中で実行され、インデントがない最後の行は繰り返しが終わってから1回だけ実行されます。

変数の使い方

for文で使う変数は、繰り返しの度に自動的に値が変わります。 この変数を他の計算に使うこともできます。

VS Codeでvariable_usage.pyというファイルを作成し、以下のコードを入力してください。

# 数字の2乗を表示
print("数字の2乗:")
for num in range(1, 6):
    square = num * num
    print(f"{num}の2乗は {square}")

実行結果は以下のようになります。

数字の2乗:
1の2乗は 1
2の2乗は 4
3の2乗は 9
4の2乗は 16
5の2乗は 25

ここでは変数名をiではなくnumにしています。 変数名は処理の内容に合わせて分かりやすい名前をつけるとよいでしょう。

まとめ

本章では、Pythonのfor文について学習しました。 理解できた内容は以下の通りです。

  • for文を使うことで、同じ処理を指定した回数だけ繰り返せる
  • range関数で数値の範囲を指定できる
  • range関数は開始値、終了値、ステップを指定できる
  • インデントを使って繰り返す処理の範囲を表現する
  • 変数名は処理内容に合わせて分かりやすく命名する

for文は、プログラムを効率的に書くために欠かせない機能です。 同じ処理を何度も書く代わりに、for文を使って簡潔で読みやすいプログラムを作ることができるようになりました。

次回は、for文をリストと組み合わせて、さらに実用的なプログラムを作る方法を学んでいきましょう。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Starterプランでより詳しく学習

この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
論理演算子で複雑な条件を作ろう