🌟

Pythonでfor文の後にelseを使う

2023/02/11に公開

Pythonではforブロックの後にelseを使うことができます。
例えば、forブロックの中でフラグを立てて、forブロックの後でフラグを確認するようなことを、elseブロックで行うことができます。

forブロックの後のelseブロックは、forが最後まで実行されたときに、実行されます。
しかし、forブロックの中でbreakを使ってforを抜けた場合は、elseブロックは実行されません。

for i in range(5):
    print(i)
else:
    print("loop done")

# 出力
# 0
# 1
# 2
# 3
# 4
# loop done
for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("loop done")

# 出力
# 0
# 1
# 2

このようにflagを使わずに、forブロックの後にelseを使うことで、コードが簡潔になります。
また、flagに値を代入し忘れるというミスを防ぐこともできます。

flagを使う場合は、以下のようになります。

flag = False
for i in range(5):
    if i == 3:
        flag = True
        break
    print(i)

if flag:
    print("loop done")
GitHubで編集を提案

Discussion