同じ処理を何回も繰り返したい事がよくあります。そんな時にfor分を使います。
Python for文の使い方
range()を使ったfor文
範囲を指定
range()を使うと指定した回数分の処理を繰り返す事が出来ます。
次の例ではrangeを10としprintを10回繰り返しています
■コード(例)
for n in range(10):
print(n)
■実行結果
0
1
2
3
4
5
6
7
8
9
範囲とステップを指定
範囲とステップを指定して繰り返すことが出来ます。
次の例ではrange(a, b, c)を設定して、10から2ステップごとに20になるまで処理を繰り返しています。
a: 開始値
b: 終了値
c: ステップ数
■コード(例)
for n in range(10, 20, 2):
print(n)
■実行結果
10
12
14
16
18
配列を使ったfor文
配列を使って要素の分だけ繰り返す事が出来ます。
これは配列の読み出しによく使われる方法です。
■コード(例)
# 配列の定義
a = [10, 20, 30, 40, 50]
# for文
for n in a:
print(a)
■実行結果
10
20
30
40
50
breakを使ったfor文(ループの中止)
breakを使うとfor文の繰り返しの最中に繰り返しを終了することが出来ます。
一般的にはbreak文は条件式とセットで使用されます。
次の例は配列の数字を順番に加算していき、合計が30を超えたらbreakでループを抜ける場合の例です。
■コード(例)
x = 0
n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for a in n:
x = x + a
if x > 30
break
print(x)
■実行結果
1
3
6
10
15
21
28
continueを使ったfor文(ループのスキップ)
continueを使うとfor文の繰り返しの最中に繰り返処理をスキップすることが出来ます
次の例では配列の数字を読み込み偶数を偶数の場合の処理(print文での表示)をスキップして次の処理を行う場合の例です。
■コード(例)
n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for a in n:
if a % 2 == 0:
continue
print(a)
■実行結果
1
3
5
7
9
elseを使ったfor文
elseはfor文のbreakと一緒に使います。
下の例のようにbreakでforの繰り返し処理を抜けたなかった場合に限りelseブロクが実行されます。
for文を使ってマッチするものを検索し、マッチしなかった場合に、その旨を表示する場合に使えます。
■コード(例)
n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for a in n:
if a > 20:
break
print(a)
else:
print(“条件にマッチしませんでした”)
■実行結果
1
2
3
4
5
6
7
8
9
10
条件にマッチしませんでした
enumerate()関数を使ったfor文
enumerate()関数を使うと取得した要素と一緒にindex(インデックス)番号も取得することが出来ます。
配列の中身を確認して、あとで任意の要素を取り出す時に使えそうですね。
■コード(案)
n = [‘apple’, ‘book’, ‘tree’, ‘green’, ‘radio’]
for (i ,x) in enumerate(n):
print(i, x)
■実行結果
0 apple
1 book
2 tree
3 green
4 radio
複数のfor文(ネスト)
for文の中にfor文を入れて処理を繰り返す(多重ループ)事が出来ます。
次のコードは2018年、2019年のそれぞれ1月~3月、更に1日~3日を表示する場合の例です。
■コード(案)
year = [2018, 2019]
for year in year:
for month in range(1, 3):
for date in (1, 2, 3):
print(year, month, date)
■実行結果
2018 1 1
2018 1 2
2018 1 3
2018 2 1
2018 2 2
2018 2 3
2019 1 1
2019 1 2
2019 1 3
2019 2 1
2019 2 2
2019 2 3