Python 中 for 循环中的“pass”和“continue”有区别吗? [重复]

问题描述 投票:0回答:13

像示例中那样,两个 Python 关键字

continue
pass
之间有什么显着差异吗

for element in some_list:
    if not element:
        pass

for element in some_list:
    if not element:
        continue

我应该知道吗?

python loops syntax continue
13个回答
535
投票

是的,他们做完全不同的事情。

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

115
投票

是的,有区别。

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

38
投票

continue
将跳回循环顶部。
pass
将继续处理。

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


24
投票

for 循环中 pass 和 continue 的区别:

那么为什么要传入python呢?

如果你想创建一个空的类、方法或块。

示例:

class MyException(Exception):
    pass


try:
   1/0
 except:
   pass

在上面的例子中如果没有'pass'将会抛出IndentationError。


17
投票

它们之间有一个区别,

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

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
    

8
投票
是的,有区别。

Continue

 实际上跳过了循环当前迭代的其余部分(返回到开头)。 
Pass
 是一条空白语句,不执行任何操作。

请参阅

python 文档


3
投票
在这些例子中,答案是否定的。如果该语句

不是循环中的最后一个,那么它们具有非常不同的效果。


3
投票
这样考虑:

通过:Python 纯粹靠缩进工作!与其他语言不同,没有空花括号。

因此,如果您想在条件为真时什么也不做,那么除了通过之外别无选择。

继续:这仅在循环的情况下有用。如果对于一系列值,您不想在该特定传递的条件为真后执行循环的其余语句,则必须使用 continue。


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 不执行任何操作。计算不受影响。但 continue 返回循环顶部以进行下一次计算。


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


1
投票

pass只是表示emptiness什么也不做,如下所示:

for i in range(3): if i == 1: pass print(i)
输出:

0 1 2

继续 跳过当前循环到下一个循环,如下所示:

for i in range(3): if i == 1: continue print(i)
输出:

0 2
    

0
投票

pass

可以用于当您需要一些空函数、类或循环以供将来实现,并且不需要执行任何代码的场景。

continue
 用于当循环内满足某些条件并且需要跳过当前迭代并移至下一个迭代时的场景。

© www.soinside.com 2019 - 2024. All rights reserved.