339

示例中的两个python关键字continue和like之间是否有任何显着差异pass

for element in some_list:
    if not element:
        pass

for element in some_list:
    if not element:
        continue

我应该知道吗?

4

12 回答 12

481

是的,他们做完全不同的事情。 pass什么都不做,whilecontinue继续下一个循环迭代。if在您的示例中,如果您在: After execution之后添加另一个语句,则差异将变得明显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
于 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将继续处理。

如果 pass 在循环的末尾,则差异可以忽略不计,因为流无论如何都会回到循环的顶部。

于 2012-02-28T14:44:45.920 回答
19

for循环中pass和continue的区别:

那么为什么要传入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用于在循环中满足某些条件并且您需要跳过当前迭代并移至下一个迭代时没有的场景。

于 2020-03-29T14:30:55.993 回答