BLOGサブスレッドの日常
2016.04.15
Pythonのforとwhileにはelseがあると聞いて椅子から転げ落ちた話
kakenavi
はいどうもー、かけなびです。
というわけでねー、がんばっていかなあかんなー言うてるとこなんですけど。
最近、ちょいちょいとPythonのスクリプトを触らせて貰ってまして。
いやー、Pythonを使うのは、ストリートファイターⅡ’以来ですねー。
まだまだ実務に使うにはしっかりとした社内レビューが必須なスキルレベルですが、ループ処理で特定の条件に一致するとループを抜るような実装を書いて、見て貰っていたところ。
「ここ、フラグじゃなくて、else文にもできるね」という指摘を受けました。
思わず「if文のですか?」と聞き返すも「いや、Pythonは、forにelseが書けてね」と。
「はじめてのC」からこの業界に入ったかけなびさんは理解を超えた説明に椅子から転げ落ちました。体が。他に何が落ちるというのですか。
どうやらこういうことらしいです。
for str in "Sub":
print str
else:
print "thread"
これでエヴァンゲリオンのタイトルっぽい出力ができてしまいます。どっひゃー。
そして、ループ中にbreakでループを抜けた場合にはelseブロックの中は実行されない、と。
また、forだけでなくwhileでも同様にelseを書ける、と。
慣れれば便利かもしれません。しかし、breakで抜けなかったループはtrueということなのでしょうか。しばらくループ文に無駄にelseを付けてレビューで指摘されてみようと思います。
この記事を書いた人
kakenavi
