<一覧に戻る

Pythonのfor文とrange関数の使い方

Pythonでプログラムを書いていると、「0から10までの数字を順番に処理したい」「特定の範囲を繰り返し処理したい」といった場面によく出会います。 こうしたときに大活躍するのが、for文とrange関数の組み合わせです。

range関数を使うと、数値の並びを簡単に生成でき、それをfor文で繰り返し処理できます。 今回は、range関数の基本から応用までをわかりやすく解説していきます。

range関数の基本

range関数のもっともシンプルな使い方は次のとおりです。

range(stop)

ここでstopは「終了値」を表します。ただし、この値は含まれない点に注意しましょう。 例えば、range(5)とした場合、実際に生成されるのは[0, 1, 2, 3, 4]です。

サンプルコード1: 基本的な使い方

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

このコードは、range(5) によって生成された0から4までの数字を、i という変数に順番に代入していきます。 そして print(i) でその数を表示します。

開始値やステップを指定するrangeの使い方

range関数は「終了値」だけでなく、「開始値」や「ステップ(増加幅)」も指定できます。その場合の構文は次のようになります。

range(start, stop, step)
  • start: 生成される数値の開始値(デフォルトは0)。
  • stop: 生成される数値の上限(この値は含まれません)。
  • step: 数値の増加量(デフォルトは1)。

サンプルコード2: 開始値とステップを指定する

for i in range(1, 10, 2):
    print(i)

このコードではrange(1, 10, 2)を使っています。これは「1から始まり、10になる手前まで、2ずつ増える数列」を意味します。 生成されるのは [1, 3, 5, 7, 9] です。

負のステップを使ったカウントダウン

range関数は必ずしも「増えていく数列」だけを作るわけではありません。 ステップに負の値を指定すれば、逆方向に数が減っていく数列 を生成することができます。

サンプルコード3: 負のステップの使用

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

この場合、range(5, 0, -1)は「5から始まり、0未満になるまで、1ずつ減らしていく数列」を作ります。 つまり [5, 4, 3, 2, 1] です。

range関数の応用

range関数は単に数を出力するだけでなく、リストやタプルといったデータ構造と組み合わせて使うこともよくあります。 特にインデックス(位置番号) を利用したいときに役立ちます。

サンプルコード4: リストの要素にアクセス

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文と組み合わせて効率的に繰り返し処理を行うことができます。

開始値やステップを自由に設定できるため、さまざまな用途に応じて活用できる強力なツールです。 これまでの内容を元に、ぜひ自分自身でコードを書いてみて、理解を深めてください。

出力結果: