pythonループ文のelse,breakおよびcontinue

1413 ワード

本題はPythonのfor...elseとwhile...else文法を議論し、これはPythonの中で最もよく使われず、最も誤解されている文法特性の一つである.Pythonのfor、whileループには、if文やtry文のようにオプションのelseブランチがあり、ループ反復【通常】が完了した後に実行されます.すなわち、break、return、異常などの異常な方法でループを終了しなければ、elseブランチが実行されます.次の例では、ループが正常に完了するとelseが実行されます.
>>> for i in range(3):
...     print(i)
... else:
...     print('Iterated over everything :)')
...
0
1
2
Iterated over everything :)
の上のコードでは、range(3)で各数値を反復して印刷します.ループを正常に完了させるため、elseブランチも実行され、Iterated over everything:)が印刷されます.逆に、break文でループを終了すると、elseブランチは実行されません.
>>> for i in range(3):
...   if i == 2:
...     break
...   print(i)
... else:
...   print('Iterated over everything :)')
... 
0
1
は、ループが反復するシーケンスが空であるにもかかわらず、elseブランチは依然として実行され、結局、ループは正常に完了していることに注意する.同じように忘れないでください.以上もwhile...elseに適応しています.
まとめ
for...else構造下
1.forの中の文は普通の(elseのないfor文)と区別がありません.
2.elseの文はループが正常に実行された後に実行されます.
3.for中文がbreakジャンプによって中断された場合、elseは実行されません.
最後に一言まとめますfor...else構造は一般的にbreakと一緒に使用してこそ、この構造の強さを体現することができる(少なくとも私はそう思っているが、他に何かあるのか、ネットユーザーに教えてほしい).while ... Else構造も上記の条件に合致する.
Pythonサイクルのcontinueとbreak
continueとbreak文は実はC言語の使い方と同じで、for...Else構造における
1.for中文がbreakジャンプによって中断された場合、else中の内容は実行されません.
2.continue文と通常文は、breakを通過しない限り、continueだけがelse文に入ります.
参考文献:
http://python.jobbole.com/81063/
http://blog.csdn.net/humanking7/article/details/43792425