例pythonのforループで `continue`と` pass`の違いはありますか?
for element in some_list:
if not element:
pass
と
for element in some_list:
if not element:
continue
私が知っておくべきことのように2つのpythonキーワード間continue
とpass
間のいずれかの大きな違いはありますか?
例pythonのforループで `continue`と` pass`の違いはありますか?
for element in some_list:
if not element:
pass
と
for element in some_list:
if not element:
continue
私が知っておくべきことのように2つのpythonキーワード間continue
とpass
間のいずれかの大きな違いはありますか?
はい、まったく別物です。 pass
は単に何もしませんが、continue
は次のループ反復で続きます。あなたの例では、if
の後に別の文を追加すると、その違いが明らかになります。pass
を実行した後、この文が実行されます。 continue
の後、それはしません。
>>> a = [0, 1, 2]
>>> for element in a:
... if not element:
... pass
... print element
...
0
1
2
>>> for element in a:
... if not element:
... continue
... print element
...
1
2
私はあなたの答えに完全に同意します。しかし、私はまだそれが必要ですパスのキーワードに関する質問がありますか?必要なのはなぜですか?ありがとうございました –
@HardikGajjar: 'pass'キーワードは何もしませんので、インデントされたスイートを構文的に必要とするが、何もしたくない場合にのみ便利です。一般的な例は、いくつかの例外を無視したい場合は、 'exceptExceptionException:pass'を使います。他にも多くのユースケースがあります。 (例えば、 '0'は効果のない完全に有効な文ですが)何もしない他の文を使うことができるので、キーワードは厳密には必要ありませんあなたは何もしたくないということについてもっと明示する必要があります。 –
これらの例では、ステートメントがでない場合、ループの最後で、非常に異なる効果があります。
continue
ループの先頭にジャンプします。 pass
は処理を続行します。
パスがループの最後にある場合、フローはループの先頭に戻るため、その差はごくわずかです。
この例では、両方のステートメントがループの最後に表示されるため、違いはありません。 pass
は単に何もしないという点でプレースホルダに過ぎません(が次のステートメントに実行を渡します)。一方、continue
は、明確な目的を持っています。ループをに続行するように指示します。ちょうど再起動したかのようになります。
for element in some_list:
if not element:
pass
print element
は
for element in some_list:
if not element:
continue
print element
とは非常に異なっているはい、違いがあります。 continue
は、次の反復でループを開始し、pass
は「ここで実行するコードはありません」を意味し、残りの部分またはループ本体を介して継続します。
は、これらを実行し、違いを参照してください。
for element in some_list:
if not element:
pass
print 1 # will print after pass
for element in some_list:
if not element:
continue
print 1 # will not print after continue
はい、違いがあります。 Continue
は、ループの現在の反復の残りの部分を実際にスキップします(最初に戻ります)。 Pass
は何もしない空文です。
を参照してくださいpython docs
それらの間の違いがあり、continue
は、ループの現在の反復をスキップして、次の反復を実行します。 pass
は何もしません。これは空文のプレースホルダです。
私はむしろ、これをより明確にする例を挙げたいと思います。
>>> for element in some_list:
... if element == 1:
... print "Pass executed"
... pass
... print element
...
0
Pass executed
1
2
>>> for element in some_list:
... if element == 1:
... print "Continue executed"
... continue
... print element
...
0
Continue executed
2
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
出力は再び、軽微な変更で同じコードを実行してみましょう
>>> This statement is from pass.
です。
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
出力がある -
>>> This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from continue.
This statement is from continue.
This statement is from continue.
パスは何もしません。計算は影響を受けません。しかし、continueはループの先頭に戻り、次の計算で処理されます。
他の回答との特別な違いは何ですか? –
@ S.Lott:例: 'while True:; [python docs](http://docs.python.org/tutorial/controlflow.html#pass-statements)の#キーボード割り込み(Ctrl + C)のビジー待機をパスして、私がその方法で私を混乱させた、この場合には同等の動作をするか、それ以外の何かを意図していることが明らかになります。最初の文章*「パス文は何もしません」*私の質問に対するすべての答えを特徴づけますが、どういうわけかそれは私の目を捉えませんでした。 – Aufwind