339

例のようにcontinue、2つのPythonキーワードの間に大きな違いはありますか?pass

for element in some_list:
    if not element:
        pass

for element in some_list:
    if not element:
        continue

私は知っておくべきですか?

4

12 に答える 12

481

はい、彼らは完全に異なることをします。 次のループの反復に進むpass間、単に何もしません。あなたの例では、 :の後continueに別のステートメントを追加すると、違いが明らかになります。実行後、この追加のステートメントが実行されます。後、そうではありません。ifpasscontinue

>>> 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
于 2012-02-28T14:44:19.027 に答える
107

はい、違いがあります。「ここで実行するコードはありません」という意味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
于 2012-02-28T14:45:57.700 に答える
31

continueループの先頭に戻ります。pass処理を続行します。

パスがループの最後にある場合、フローはとにかくループの先頭に戻るため、違いはごくわずかです。

于 2012-02-28T14:44:45.920 に答える
19

forループでのパスと続行の違い:

では、なぜPythonを渡すのですか?

空のクラス、メソッド、またはブロックを作成する場合。

例:

class MyException(Exception):
    pass


try:
   1/0
 except:
   pass

上記の例で「pass」がないと、IndentationErrorがスローされます。

于 2019-11-03T07:14:36.803 に答える
14

あなたの例では、両方のステートメントがループの最後に表示されるため、違いはありません。passは何もしないという点で単なるプレースホルダーです(実行を次のステートメントに渡します)。continue一方、には明確な目的があります。それは、ループを再起動したかのように続行するように指示します。

for element in some_list:
    if not element:
        pass
    print element  

とは大きく異なります

for element in some_list:
    if not element:
        continue
    print element
于 2012-02-28T14:45:50.993 に答える
12

それらの間には違いがあり
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
于 2016-04-30T07:34:59.983 に答える
7

はい、違いがあります。Continue実際には、ループの現在の反復の残りをスキップします(最初に戻ります)。Pass何もしない空白のステートメントです。

Pythonのドキュメントを参照してください

于 2012-02-28T14:46:02.393 に答える
3

それらの例では、いいえ。ステートメントがループの最後ではない場合、それらは非常に異なる効果を持ちます。

于 2012-02-28T14:44:40.140 に答える
3

このように考えてください:

パス: Pythonは純粋にインデントで動作します!他の言語とは異なり、空の中括弧はありません。

したがって、条件が真の場合に何もしたくない場合は、合格以外のオプションはありません。

続行:これは、ループの場合にのみ役立ちます。ある範囲の値について、その特定のパスでその条件が真になった後でループの残りのステートメントを実行したくない場合は、continueを使用する必要があります。

于 2018-03-29T06:00:16.703 に答える
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はループの先頭に戻り、次の計算を続行します。

于 2017-11-07T16:19:59.590 に答える
1

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で空の条件、ループ、または関数を記述することはできません。

于 2021-03-13T07:09:54.430 に答える
0

pass将来の実装のために空の関数、クラス、またはループが必要であり、コードを実行する必要がないシナリオで使用できます。
continueループ内で何らかの条件が満たされ、現在の反復をスキップして次の反復に移動する必要がある場合に、noのシナリオで使用されます。

于 2020-03-29T14:30:55.993 に答える