示例中的两个python关键字continue
和like之间是否有任何显着差异pass
for element in some_list:
if not element:
pass
和
for element in some_list:
if not element:
continue
我应该知道吗?
是的,他们做完全不同的事情。 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
是,有一点不同。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 在循环的末尾,则差异可以忽略不计,因为流无论如何都会回到循环的顶部。
在您的示例中,没有区别,因为两个语句都出现在循环的末尾。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
用于在循环中满足某些条件并且您需要跳过当前迭代并移至下一个迭代时没有的场景。