プログラミングでは、「決まった回数だけ処理を繰り返す」という操作が頻繁に登場します。Pythonでは、このような繰り返し処理を**for
ループとrange()
関数**を組み合わせることで、非常にシンプルかつ直感的に記述できます。
この記事では、for
ループの基本的な使い方から、range()
関数の便利なオプションまでを分かりやすく解説します。
for
ループの基本
for
ループは、指定した回数だけ、あるいはリストや文字列などの要素の数だけ処理を繰り返すための構文です。特に、「5回繰り返す」「100回繰り返す」といった回数が決まっている場合に適しています。
range()
関数と組み合わせた基本的な形を見てみましょう。
print("メッセージを送信します。")
# 0から3までの数字を順番に取り出しながらループ
for i in range(4):
# f-stringを使って、変数iの値を文字列に埋め込んでいます
print(f"メッセージ送信中... (回数: {i})")
print("送信が完了しました。")
このコードを実行すると、以下のように出力されます。
メッセージを送信します。
メッセージ送信中... (回-数: 0)
メッセージ送信中... (回数: 1)
メッセージ送信中... (回数: 2)
メッセージ送信中... (回数: 3)
送信が完了しました。
range(4)
は0, 1, 2, 3
という連続した数値を生成します。for
ループは、その数値を一つずつ変数i
に取り出しながら、ブロック内のprint
文を繰り返し実行します。重要なのは、range(4)
には4自体は含まれないという点です。
for
ループの活用例:合計値を計算する
for
ループは、数値を足し合わせるような計算にも役立ちます。例えば、1から50までの全ての整数を足し合わせるプログラムは、次のように書くことができます。
# 合計値を保存する変数を0で初期化
sum_value = 0
# 1から50までの数値を生成してループ (range(51)は0から50まで)
for number in range(51):
# sum_valueにnumberを足していく
sum_value = sum_value + number
print(f"1から50までの合計値は {sum_value} です。")
# 出力結果: 1から50までの合計値は 1275 です。
while
ループとの比較
同様の処理はwhile
ループでも実現できますが、for
ループの方がシンプルに書けることが多いです。最初のfor
ループの例をwhile
ループで書くと、以下のようになります。
print("メッセージを送信します。")
# カウンター変数を初期化
i = 0
# iが4より小さい間、ループを続ける
while i < 4:
print(f"メッセージ送信中... (回数: {i})")
# カウンター変数を手動で1増やす
i = i + 1
print("送信が完了しました。")
while
ループではカウンター変数(i
)の初期化と更新を自分で行う必要がありますが、for
ループではそれらが自動的に行われるため、コードがすっきりとします。
range()
関数の便利な引数
range()
関数は、開始値、終了値、そして増加量(ステップ)を引数で指定することで、より柔軟な数値のシーケンスを生成できます。
1. 開始値と終了値を指定する
range(開始値, 終了値)
と書くことで、ループの始まる数値を0以外に設定できます。
# 5から9までの数値を生成(10は含まれない)
for i in range(5, 10):
print(i)
実行結果:
5
6
7
8
9
2. 開始値、終了値、ステップを指定する
range(開始値, 終了値, ステップ)
と書くことで、いくつずつ数を増やす(または減らす)かを指定できます。
# 0から20まで、5ずつ増やしながら数値を生成
for i in range(0, 21, 5):
print(i)
実行結果:
0
5
10
15
20
まとめ
今回は、Pythonのfor
ループとrange()
関数について学びました。
for
ループは、決まった回数の繰り返しに最適な構文です。range(終了値)
で0から始まる連続した数値を生成できます。range(開始値, 終了値, ステップ)
を使うことで、より柔軟な繰り返しが可能です。
for
ループとrange()
関数は、Pythonプログラミングの基本であり、あらゆる場面で活用できます。ぜひ色々な数値で試して、その動きに慣れてみてください。