モブプロな人たちのブログ

Web サービス開発しているエンジニアの日記です。Python 大好き Flask 大好き。たまに Swift で iOS ゲーム開発も。

Python で for ループの後の else ブロックは使わないこと

「Effective Python」を久しぶりに読み返して、当時は特に何も思わなかった箇所に引っかかったのでメモを残しておきます。

Effective Python ―Pythonプログラムを改良する59項目

Effective Python ―Pythonプログラムを改良する59項目

Python で for ループの後の else ブロックは使わないこと

ガーン!

めちゃくちゃ使ってました。えぇ、ホントに。いや、めちゃくちゃは言い過ぎかもしれません。たまに使います。

使ってはいけない理由はとてもシンプルで、

if/else や try/except/else と else の意味合いが直感的に異なるから

です。

  • if/else の場合、if ブロックが実行されなければ else ブロックを実行
  • for/else の場合、for ブロックが最後まで実行されたら else ブロックを実行

確かに逆ですね。

今後は、うっかり使わないように気をつけます。