两个Python关键字continue和pass之间有什么显著的区别吗
for element in some_list:
if not element:
pass
and
for element in some_list:
if not element:
continue
我应该注意的?
两个Python关键字continue和pass之间有什么显著的区别吗
for element in some_list:
if not element:
pass
and
for element in some_list:
if not element:
continue
我应该注意的?
当前回答
它们之间有区别,continue跳过循环的当前迭代并执行下一个迭代。Pass什么都不做。它是一个空语句占位符。 我想给你们举个例子,能更好地说明这一点。
>>> some_list = [0, 1, 2]
... 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将继续处理。
如果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
Pass可以用于这样的场景:当你需要一些空函数、类或循环用于未来的实现,并且不需要执行任何代码时。 Continue用于以下情况:当在循环中满足某些条件时,需要跳过当前迭代并移动到下一个迭代。
是的,他们做的事情完全不同。Pass只是什么都不做,而continue则继续进行下一次循环迭代。在您的示例中,如果在if之后添加另一条语句,区别就会很明显:在执行pass之后,将执行这条进一步的语句。在继续之后,它就不会了。
>>> 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
可以这样考虑:
通过:Python只处理缩进!不像其他语言,这里没有空花括号。
因此,如果你想在条件为真时什么都不做,除了pass没有其他选择。
Continue:这只在循环的情况下有用。在这种情况下,对于一定范围的值,您不想在特定传递的条件为真之后执行循环的剩余语句,那么您将必须使用continue。