Pythonのfor-else
Pythonにはfor-elseという一見変わった構文があり、python初心者にコードレビューで指摘するといい感じで驚いてもらえます
よくfor分の中である条件を探索し、ヒットすればループから抜けるというコードの後に、何かにヒットしかどうかをカウンタなり、フラグなりでチェックすることがあると思います。例えば以下のようなコード
import random
i = 0
for n in range(10):
i += 1
if n == random.randint(1, 10):
print("You're lucky!" + str(n))
break
if (i==10):
print("You're unlucky!")
このようなコードがfor-elseを使用するとすっきり書くことができます
for n in range(10):
if n == random.randint(1, 10):
print("You're lucky!" + str(n))
break
else:
print("You're unlucky!")
上記のコードでelse
は対応するfor
文でbreak
が実行されなかった際に実行されるコードです。だいぶすっきりしたコードになりました。
ちなみにwhile
でも同様に使用できます。こちらもbreakではなく、条件がfalseでループが終了した場合にelseが実行されます
n = 0
while n < 10:
n += 1
if n == random.randint(1, 10):
print("You're lucky!" + str(n))
break
else:
print("You're unlucky!")
最近のコメント