Python - for文 による繰り返し

リスト・タプル・辞書 など、反復処理が可能なオブジェクト使用してループ処理をするには for を使用します。

for文 の基本的な使い方

for <変数> in <イテラブル・オブジェクト>:
    <繰り返し実行する処理>
  1. <イテラブル・オブジェクト>の先頭から、値を一つずつ取り出します。
  2. 値が取り出せない場合、繰り返し処理を終了します。
  3. 値が取り出せた場合、<変数>に格納されます。
  4. コロン(:)に続く、インデントされたブロック内の処理が実行されます。
  5. 1.に戻ります。
次のサンプルコードは リスト point_list に格納されいる数値を合計し、結果を表示します。
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 は実行されない')

参考資料

検証環境