for文を作ってみよう
for文の書き方
for文の書き方は、以下のようになります。
inの後のオブジェクトは、複数の値で構成されます。
for文では、その値を順番に変数に代入して、値がなくなるまで処理を行います。
for 変数 in オブジェクト:
処理
以下のPythonスクリプトは、1、2、3、4、5を順に変数xに代入して、その値を表示します。
1 2 |
for x in [1, 2, 3, 4, 5]: print(x) |
実行例
> python for1.py
1
2
3
4
5
上記のPythonスクリプトでは、オブジェクトを直接書いていますが、オブジェクトを別に定義することもできます。
1 2 3 |
list = [1, 2, 3, 4, 5] for x in list: print(x) |
ループを終了するbreak文
ある条件でループの途中で終了したい場合は、break文を使います。
以下のPythonスクリプトは、値が偶数だったらループを終了します。
1 2 3 4 5 |
list = [1, 2, 3, 4, 5] for x in list: if x % 2 == 0: break print(x) |
実行例
> python for3.py
1
ループの先頭に戻るcontinue文
ある条件でループの先頭に戻りたい場合は、continue文を使います。
以下のPythonスクリプトは、偶数だった場合は変数の値を表示せず、ループに戻り次の値の処理を行います。
1 2 3 4 5 |
list = [1, 2, 3, 4, 5] for x in list: if x % 2 == 0: continue print(x) |
実行例
> python for4.py
1
3
5
ループが完了した時の処理
ループが正常に終了した時に処理を行いたい場合は、elseを使います。
break文でループを途中で終了した場合は、elseの処理は行われません。
1 2 3 4 5 |
list = [1, 2, 3, 4, 5] for x in list: print(x) else: print("LOOP完了") |
実行例
> python for5.py
1
2
3
4
5
LOOP完了
1 2 3 4 5 6 7 |
list = [1, 2, 3, 4, 5] for x in list: if x > 3: break print(x) else: print("LOOP完了") |
実行例
> python for6.py
1
2
3
多重ループから抜ける処理
多重ループの時、内側のループでbreakしても内側のループしか抜けません。
内側のループ内でbreakしたら外側のループも終了したい場合は、以下のようにします。
8行目のcontinue文は、外側のfor文のループを継続するという意味です。
9行目のbreak文によって、外側のfor文のループを終了します。
1 2 3 4 5 6 7 8 9 |
list = [1, 2, 3, 4, 5] for x in list: for y in list: if y > 3: break print(x*y) else: continue break |
実行例
> python for7.py
1
2
3