Pythonでプログラムを書いていると、「0から10までの数字を順番に処理したい」「特定の範囲を繰り返し処理したい」といった場面によく出会います。 こうしたときに大活躍するのが、for文とrange関数の組み合わせです。
range関数を使うと、数値の並びを簡単に生成でき、それをfor文で繰り返し処理できます。 今回は、range関数の基本から応用までをわかりやすく解説していきます。
range関数のもっともシンプルな使い方は次のとおりです。
range(stop)
ここでstopは「終了値」を表します。ただし、この値は含まれない点に注意しましょう。
例えば、range(5)
とした場合、実際に生成されるのは[0, 1, 2, 3, 4]です。
for i in range(5):
print(i)
このコードは、range(5) によって生成された0から4までの数字を、i という変数に順番に代入していきます。 そして print(i) でその数を表示します。
range関数は「終了値」だけでなく、「開始値」や「ステップ(増加幅)」も指定できます。その場合の構文は次のようになります。
range(start, stop, step)
for i in range(1, 10, 2):
print(i)
このコードではrange(1, 10, 2)
を使っています。これは「1から始まり、10になる手前まで、2ずつ増える数列」を意味します。
生成されるのは [1, 3, 5, 7, 9] です。
range関数は必ずしも「増えていく数列」だけを作るわけではありません。 ステップに負の値を指定すれば、逆方向に数が減っていく数列 を生成することができます。
for i in range(5, 0, -1):
print(i)
この場合、range(5, 0, -1)
は「5から始まり、0未満になるまで、1ずつ減らしていく数列」を作ります。
つまり [5, 4, 3, 2, 1] です。
range関数は単に数を出力するだけでなく、リストやタプルといったデータ構造と組み合わせて使うこともよくあります。 特にインデックス(位置番号) を利用したいときに役立ちます。
fruits = ['apple', 'banana', 'cherry', 'date']
for i in range(len(fruits)):
print(f"Index {i} corresponds to {fruits[i]}")
ここでは len(fruits) を使ってリストの長さを取得し、その範囲を range() に渡しています。 これにより i には0から3までの数字が入り、それをインデックスとしてリストの要素を取り出します。
出力結果は次のようになります。
Index 0 corresponds to apple
Index 1 corresponds to banana
Index 2 corresponds to cherry
Index 3 corresponds to date
このように、インデックス番号と要素を同時に扱いたいときに、range関数は非常に便利です。
range関数を使うことで、数値のシーケンスを簡単に生成し、for文と組み合わせて効率的に繰り返し処理を行うことができます。
開始値やステップを自由に設定できるため、さまざまな用途に応じて活用できる強力なツールです。 これまでの内容を元に、ぜひ自分自身でコードを書いてみて、理解を深めてください。