Pythonのforループやwhileループは、elseを持つことができると聞いて驚きました。例えば以下のコードは合法です。
for i in range(5): print("i = ", i) else: print("loopは無事に終了しました")
実行例は以下です。
i = 0 i = 1 i = 2 i = 3 i = 4 loopは無事に終了しました
このようにループの後に繋げたelseは、ループが正常終了したときのみ実行されます。逆に言うと、breakやreturnでループを抜けたり、例外を発生したりしたときは実行されません。
以下のようにループの途中でbreakすると、
for i in range(5): print("i = ", i) if i == 3: break else: print("loopは無事に終了しました")
else節の内容は実行されません。
i = 0 i = 1 i = 2 i = 3