Python中的for循环中的continue和pass有区别吗?

在两个Python关键字continuepass之间是否像例子中那样有明显的区别

for element in some_list:
if not element:
pass

而且

for element in some_list:
if not element:
continue

我应该注意的?

257223 次浏览

是的,他们做的事情完全不同。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将继续处理。

如果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 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是一个空语句,不做任何事情。

参见python文档

它们之间有区别,
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
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.

Pass什么都不做。计算不受影响。但是继续返回到循环的顶部继续进行下一个计算。

可以这样考虑:

通过: Python完全靠缩进工作!不像其他语言,这里没有空花括号。

因此,如果你想在条件为真时什么都不做,除了pass没有其他选择。

继续:仅在循环的情况下有用。在这种情况下,对于一定范围的值,您不想在特定传递的条件为真之后执行循环的剩余语句,那么您将必须使用continue。

for循环中pass和continue的区别:

 ></a></p>


<p><strong>那么为什么要传入python呢?</strong></p>


<p>如果你想创建一个空类,方法或块。</p>


<p>例子:</p>


<pre><code>class MyException(Exception):
pass




try:
1/0
except:
pass
</code></pre>


<p>在上面的例子中没有'pass'将抛出IndentationError。</p></div>
                                                                            </div>
                                </div>
                            </div>
                        </div>
                                                <div class=

pass可以用于这样的场景:当你需要一些空函数、类或循环用于未来的实现,并且不需要执行任何代码时 continue在no的情况下使用,当循环中满足某些条件时,您需要跳过当前迭代并移动到下一个迭代

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中不能只编写空的条件、循环或函数。