例のようにcontinue
、2つのPythonキーワードの間に大きな違いはありますか?pass
for element in some_list:
if not element:
pass
と
for element in some_list:
if not element:
continue
私は知っておくべきですか?
はい、彼らは完全に異なることをします。 次のループの反復に進む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
はい、違いがあります。「ここで実行するコードはありません」という意味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
処理を続行します。
パスがループの最後にある場合、フローはとにかくループの先頭に戻るため、違いはごくわずかです。
あなたの例では、両方のステートメントがループの最後に表示されるため、違いはありません。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 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
はい、違いがあります。Continue
実際には、ループの現在の反復の残りをスキップします(最初に戻ります)。Pass
何もしない空白のステートメントです。
Pythonのドキュメントを参照してください
それらの例では、いいえ。ステートメントがループの最後ではない場合、それらは非常に異なる効果を持ちます。
このように考えてください:
パス: Pythonは純粋にインデントで動作します!他の言語とは異なり、空の中括弧はありません。
したがって、条件が真の場合に何もしたくない場合は、合格以外のオプションはありません。
続行:これは、ループの場合にのみ役立ちます。ある範囲の値について、その特定のパスでその条件が真になった後でループの残りのステートメントを実行したくない場合は、continueを使用する必要があります。
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はループの先頭に戻り、次の計算を続行します。
pass
ループまたは条件を続行するだけです。何もしません。continue
ただし、現在の反復をスキップして次の反復に進むために使用されます。
あなたは尋ねるかもしれません、なぜpass
必要でないのにまったく使われるのですか?次の場合を考えてみましょう。
text = "I am a coder."
if text == "I am not a coder.":
print("Programming is interesting! You should try it out!")
elif text == "I am a coder.":
pass
pass
スペースを埋めるために使用される構文上のプレースホルダーです。特定の条件がチェックアウトされたときに何もしたくない場合はpass
、プレースホルダーとして使用できます。Pythonで空の条件、ループ、または関数を記述することはできません。
pass
将来の実装のために空の関数、クラス、またはループが必要であり、コードを実行する必要がないシナリオで使用できます。
continue
ループ内で何らかの条件が満たされ、現在の反復をスキップして次の反復に移動する必要がある場合に、noのシナリオで使用されます。