プログラミングでは、リストの要素数に関係なく、「処理を5回だけ繰り返したい」「10回リトライしたい」といった、特定の回数だけループを実行したい場面があります。
Pythonでは、for 文と組み込み関数の range() を組み合わせることで、これを簡潔に実現できます。
この記事では、range() 関数を使用して指定回数のループ処理を実装する方法と、ループ変数を扱わない場合の一般的な記述方法について解説します。
基本的な書き方
指定した回数だけ処理を繰り返すには、range() 関数の引数に繰り返したい回数(整数)を渡します。
構文:
for 変数 in range(回数):
# 繰り返したい処理
range(N) は、0 から N-1 までの整数シーケンスを生成します。結果として、ブロック内の処理は N 回実行されます。
1. ループ変数(カウンタ)を利用する場合
ループの中で、現在が何回目の処理なのかを知りたい場合は、for 文の変数(一般的に i や index などが使われます)を利用します。
以下の例は、サーバーへの接続をシミュレーションし、試行回数を表示するプログラムです。
# 最大リトライ回数
max_retries = 5
print("--- 接続処理を開始します ---")
# 0 から 4 までの 5回繰り返す
for i in range(max_retries):
# i は 0 から始まるため、表示用に +1 する
attempt_number = i + 1
print(f"サーバーに接続を試行しています... ({attempt_number} / {max_retries})")
print("--- 処理完了 ---")
実行結果:
--- 接続処理を開始します ---
サーバーに接続を試行しています... (1 / 5)
サーバーに接続を試行しています... (2 / 5)
サーバーに接続を試行しています... (3 / 5)
サーバーに接続を試行しています... (4 / 5)
サーバーに接続を試行しています... (5 / 5)
--- 処理完了 ---
range(5) は 0, 1, 2, 3, 4 という数値を順に生成するため、変数 i にはこれらの値が順番に代入されます。
2. ループ変数を利用しない場合(アンダースコア _)
単に処理を繰り返すだけで、現在が何回目かという情報(ループ変数)をコード内で使用しない場合もあります。
そのような場合、Pythonの慣習として変数名に _(アンダースコア) を使用することが推奨されます。これにより、「この変数は意図的に使用していません」ということをコードを読む人に明示できます。
# データ送信を3回繰り返すシミュレーション
repeat_count = 3
print("データ送信開始")
# 変数を使わないので '_' を指定する
for _ in range(repeat_count):
print("パケットを送信しました。")
print("送信完了")
実行結果:
データ送信開始
パケットを送信しました。
パケットを送信しました。
パケットを送信しました。
送信完了
変数名を i にしても動作に問題はありませんが、_ を使うことで、変数が未使用であることを静的解析ツールなどが認識しやすくなり、コードの意図も明確になります。
まとめ
- 指定回数のループを行うには
for i in range(回数):を使用します。 range(N)は0からN-1までの値を生成します。- ループ変数の値(現在の回数)を使わない場合は、変数名に
_を使うのが一般的です。
