Pythonを学んでいくと、データを順番に処理したい場面が数多く出てきます。 例えば「リストの中身を1つずつ取り出したい」「0から10までの数字を順番に使いたい」といった場合です。
こうした処理を簡単に書けるのがforループです。
forループは、リストやタプル、文字列などのイテラブル(繰り返し可能なデータ)を順番に取り出して処理するための構文です。Pythonを使う上で欠かせない仕組みなので、初心者のうちにしっかりと理解しておきましょう。
forループの基本形は次のようになります。
for 変数 in イテラブル:
実行する処理
ここで変数は、繰り返しの中で一時的に値を受け取るための入れ物です。 そして"イテラブル"とは、リスト・タプル・文字列といった「順番に取り出せるデータ」を指します。
ループが回るたびに、イテラブルから1つずつ要素が取り出され、変数に代入されます。 その値を使って、インデントされた処理が実行されるという仕組みです。
次のコードは、果物のリストを作り、それを順番に表示するものです。
fruits = ["りんご", "バナナ", "オレンジ"]
for fruit in fruits:
print(fruit)
このプログラムでは、最初に fruits というリストを用意しています。 その中には「りんご」「バナナ」「オレンジ」という3つの要素が入っています。f
orループはリストの先頭から1つずつ要素を取り出し、そのたびに fruit という変数に代入します。 そして print(fruit) が実行されることで、変数に入った果物の名前が順番に出力されるわけです。
このコードを実行すると、以下のように出力されます。
りんご
バナナ
オレンジ
つまりforループを使うと、リストに入っているデータをひとつずつ処理するという操作を非常にシンプルに書くことができるのです。
range
関数を使うことで、指定した範囲の数値を生成し、その数値を使ってfor
ループを実行することができます。range
関数は、整数のシーケンスを生成するために非常に便利です。
forループはリストだけでなく、数値の連続した範囲を使って繰り返すこともできます。 そのときに便利なのがrange関数です。
range関数は一定の規則に従った整数の並びを作ってくれる関数で、forループと組み合わせることで何回繰り返すかを指定することができます。
range関数の構文は次のようになっています。
range(開始, 終了, ステップ)
以下の例では、0から4までの整数を出力します。
for i in range(5):
print(i)
この場合、range(5) が作り出すのは[0, 1, 2, 3, 4]という5つの数字です。 ループが1回まわるごとに i に次の数字が入り、その値がprint(i)によって出力されます。
実行すると次のようになります。
0
1
2
3
4
range(5) のように終了値だけを指定した場合は、自動的に0からスタートし、終了値のひとつ手前までの整数が生成されることを覚えておきましょう。
次に、ステップを指定した場合の例を見てみましょう。
for i in range(0, 10, 2):
print(i)
ここでは range(0, 10, 2) を使っています。ステップに"2"を指定しています。 これは「0から始まり、10になる手前まで、2ずつ増やす」という意味です。 したがって生成されるのは [0, 2, 4, 6, 8] という並びになります。
ループの中では、それぞれの数値が i に代入され、print(i)で出力されます。実行すると次のようになります。
0
2
4
6
8
このように、range関数を使うことで「何回繰り返すか」「どの数字を取り出すか」を柔軟にコントロールできます。
forループの中に、さらにforループを入れることもできます。 これをネストしたループ(入れ子のループ)と呼びます。
ネストしたループを使うと、組み合わせの処理や二次元的なデータの処理が可能になります。
以下は、ネストしたループの例です。
for i in range(3):
for j in range(2):
print(f"i = {i}, j = {j}")
このコードでは、外側のループで i に 0, 1, 2 が順番に入ります。 そのたびに内側のループが動き、j に 0, 1 が順番に入ります。
したがって、print 文では i と j の全ての組み合わせが表示されます。 実行結果は次のようになります。
i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1
このようにネストしたループを使うと、二重の繰り返しが必要な処理、例えば「行と列を組み合わせて表を作る」といった操作が簡単に実現できます。
このセクションでは、forループの基本的な使い方を学びました。今回学んだ内容は以下の通り。
forループはPythonで最もよく使われる仕組みのひとつです。データを扱うプログラムを書くときに必ず役立つので、ここでしっかりと理解しておきましょう!