Python for...else... ステートメント
3261 ワード
条件文はプログラミング言語では普通ですが、プログラムを書く必要がある限り、ほぼ
コードの例を見てみましょう.
実行結果:
このコードを実行しない場合は、このコードの書き方だけを見て、
実行結果:
今回の結果は
実行結果:
この結果は、第1セグメントのコード例とあまり差がないが、
実行結果:
上のコードの印刷結果によると、Pythonの
Pythonの
このコードは明らかに次の
以上、私が
if
を使用します.else
... このような条件文は条件判断を行う.だから汎用プログラミング言語はif
を提供します...else
... このような文法.Pythonも例外ではありませんが、Pythonはif
だけではありません...else
... このような文法は、for
も提供されています.else
...、 try
... except
... else
... などという文法があります.今日はfor
についてのみ議論します.else
... 文法を見て、Pythonのelse
文がfor
の後についているのとif
の後についているのと何が違うのかを見てみましょう.コードの例を見てみましょう.
for i in [1, 2, 3]:
print(i)
else:
print('done')
実行結果:
1
2
3
done
このコードを実行しない場合は、このコードの書き方だけを見て、
done
ではなく1、2、3の3つの数しか実行されていないと推測するかもしれません.if
で...else
... のロジックでは、if
の条件が真であれば、else
文のコードブロックは実行されません.しかし、印刷結果によると、明らかに私たちの予想に合わない.疑問を持って、次のサンプルコードを見てみましょう.for i in []:
print(i)
else:
print('done')
実行結果:
done
今回の結果は
done
しかなく、このコードはもっと合理的に見えるようです.for
遍歴のリストが空なので条件が成立しないなら、else
の論理を実行すべきで、本当にそうですか?次に、次の例を見てみましょう.for
文ブロックにcontinue
とbreak
の2つのキーワードが表示されることを知っています.まず、for
文ブロックにcontinue
が含まれている場合、どのような結果になるかをテストします.for i in [1, 2, 3]:
if i == 2:
continue
print(i)
else:
print('done')
実行結果:
1
3
done
この結果は、第1セグメントのコード例とあまり差がないが、
i == 2
のときに、今回のループをスキップし、次のループを実行し続ける.最後に、for
文ブロックにbreak
が含まれている場合、どのような結果が得られるかを見てみましょう.for i in [1, 2, 3]:
if i == 2:
break
print(i)
else:
print('done')
実行結果:
1
上のコードの印刷結果によると、Pythonの
for
が分かったかもしれないと思います.else
... 文の実行特性.そう、実はif
に従えば...else
... for
を理解するために反発する論理です...else
...,では、for
文ブロック内のbreak
は、else
と本当に条件文のペアである.for
ループでbreak
文が実行されると、else
文ブロック内のコードは実行されなくなります.Pythonの
for
を知りました...else
... 文の文法ですが、何の役に立ちますか.最初はfor
に触れましたelse
... 文の時は全く役に立たないと思っていたので、長い間Pythonコードを書いたことがなく、Pythonが提供したこの文法さえほとんど忘れてしまいました.ERP
のプロジェクトを書き始めるまで、for
を見つけました.else
... の真の用途.ERP
と書くと、さまざまな複雑なビジネスニーズに直面するため、for
を使うことができれば...else
... 問題を解決すると、コードロジックが明確になり、プロジェクトのメンテナンス性が大幅に向上します.for
で反復可能オブジェクトをループし、反復可能オブジェクトの内部に要素が条件を満たしている場合は、論理を実行し、break
を削除します.すべてが一致していない場合は、else
の文を実行して別の論理を実行します.サンプルコードは次のとおりです.for i in :
if :
break
else:
このコードは明らかに次の
for
を使わないよりも...else
... の書き方は可読性が高く、Pythonic
の書き方にもっと合っています.flag = False
for i in :
if :
flag = True
break
if not flag:
以上、私が
for
に...else
... の理解と使用体験は、同じ問題に直面したときに、あなたに役立つことを望んでいます.