for文 の基本的な使い方
for <変数> in <イテラブル・オブジェクト>:
<繰り返し実行する処理>
- <イテラブル・オブジェクト>の先頭から、値を一つずつ取り出します。
- 値が取り出せない場合、繰り返し処理を終了します。
- 値が取り出せた場合、<変数>に格納されます。
- コロン(:)に続く、インデントされたブロック内の処理が実行されます。
- 1.に戻ります。
point_list = [100, 10, 1]
point_sum = 0
for value in point_list:
point_sum = point_sum + value
print(point_sum) # 結果 = 111
break - ループから抜ける
break を使用すると、未処理の値が残っていてもループから抜けます。次のサンプルコードは リスト point_list 中にマイナスの値がある場合、ループを終了します。
point_list = [100, -100, 10, 1]
point_sum = 0
for value in point_list:
# マイナス値の場合、ループ終了
if value < 0:
break
point_sum = point_sum + value
print(point_sum) # 結果 = 100
continue - ループの先頭に戻る
continue を使用するとループの先頭に戻ります。次のサンプルコードは 値がマイナス の場合、加算処理 と print 処理をスキップします。
point_list = [100, -100, 10, 1]
point_sum = 0
for value in point_list:
# マイナス値の場合、ループの先頭に戻る
if value < 0:
continue
print(f'{value}を加算します。')
point_sum = point_sum + value
print(point_sum) # 結果 = 111
else - ループ終了時に処理を実施
全ての値を処理すると elseブロック が実行されます。空のリストなど、値が一つもない場合も実行されます。ただし、break や return でループを抜けたときは実行されません。次のサンプルコードは else を使用し、'合計は111です。' を表示します。
point_list = [100, 10, 1]
point_sum = 0
for value in point_list:
point_sum = point_sum + value
else:
print(f'合計は{point_sum}です。') # 合計は111です。
次のサンプルコードは break でループを抜けているため、何も表示されません。
point_list = [100, 10, 1]
point_sum = 0
for value in point_list:
break;
else:
print('break でループを抜けると else は実行されない')
参考資料
検証環境
- Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
- Microsoft Windows 10 Enterprise Version 22H2 OS Build 19045.3693 Experience: Windows Feature Experience Pack 1000.19053.1000.0