【python】繰返し条件文(for .. else)の使い方

python

pythonのfor else文の使い方を調べる人

pythonのfor else文の使い方を調べる人
「pythonのfor else文はどのような時に使うと効果的ですか?python以外ではあんまり見たことのない構文ですね。具体的な使用例としてコピペできるソースコードも欲しいです。」

こんな疑問を解決します。

結論

for else文は、break文と合わせて使います。breakしなかった場合のみ、else句が実行されるからです。

for else文はどういう時に使う?

一般的な言語では、for文中でbreakしたか、していないかを判定するためには、①break判定用のフラグを作り、②判定処理を記述しなくてはなりません。しかしpythonではこれがif break else文によってスマートに代替可能です。

具体例

for文中に’宝物’を見つけたらbreakする例を示します。見つからなかったらelse句を実行します。

 
for i in ['ゴミ','ゴミ','ゴミ','宝物','ゴミ']:
  if i=='宝物':
    print('宝物を見つけた')
    break
else:
  print('宝物が見つからなかった')
 

 
実行結果は以下の通りです。

宝物を見つけた

 
最初の行のlistから’宝物’を除いたプログラムとその実行結果は以下の通りです。

 
for i in ['ゴミ','ゴミ','ゴミ','ゴミ']:
  if i=='宝物':
    print('宝物を見つけた')
    break
else:
  print('宝物が見つからなかった')
 
宝物が見つからなかった

for elseの構文

for else文の使い方

for else文の構文は以下の通りです。

for 《変数》 in 《イテレータ (list,tuple,set,dictなど) 》:
《繰り返し処理(breakを含む)》
else:
《後処理》

本記事の内容

この記事を書いている私はIT業界歴12年、年収1,000万円ちょっとの金融系エンジニアです。学生時代から様々なプログラミング言語を扱ってきましたが、その中でもpythonはとても扱いやすく生産性も高く、オススメの言語です。

本記事では、pythonでfor else文による繰り返し処理を実装する方法について解説します。私はこれまでC/C++,Java,Cobol,SML,Ocamlなど様々な言語を扱ってきましたが、for else文はpython独自のユニークな構文です。

for else文を用いた具体例を示し、細かい構文に迷ったときにコピー&ペーストして使えることも目指しました。少しでもお役に立てますと幸いです。

for else文中にbreakが無いとどうなるか

for else文中にbreakが無い例を示します。

 
for i in ['1st','2nd','3rd']:
  print(i+' loop')
else:
  print('Finished')
 
 
1st loop
2nd loop
3rd loop
Finished
 

 
エラーにならず処理はできるのですが、forループが終わると必ずelse句を実行しますので、実はelse句を定義する意味がありません。ですから、if break elseというイディオムで理解しておけばOKです。

今回は以上です。if break elseの使い方について解説しました。

本記事の内容がプログラミングする際の参考になりましたら幸いです。

pythonは自動車、半導体メーカーなどでも使われています