Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中for循环中的continue和pass有区别吗?_Python_Syntax_Continue - Fatal编程技术网

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

python中for循环中的continue和pass有区别吗?,python,syntax,continue,Python,Syntax,Continue,示例中的两个python关键字continue和pass之间是否存在显著差异 for element in some_list: if not element: pass 及 我应该知道?是的,他们做完全不同的事情pass什么也不做,而continue继续下一个循环迭代。在您的示例中,如果在if之后添加另一条语句,则差异将变得明显:在执行pass之后,将执行此进一步的语句。在继续之后,它不会继续 >>> a = [0, 1, 2] >>&g

示例中的两个python关键字
continue
pass
之间是否存在显著差异

for element in some_list:
    if not element:
        pass


我应该知道?

是的,他们做完全不同的事情
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

在这些示例中,不是。如果语句不是循环中的最后一个语句,则它们的效果会非常不同。

continue
将跳回循环的顶部<代码>通过将继续处理


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

在您的示例中,没有差异,因为这两个语句都出现在循环的末尾
pass
只是一个占位符,因为它不做任何事情(它将执行传递到下一条语句)<另一方面,code>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
是一个不执行任何操作的空白语句


请参见它们之间的差异,
继续
跳过循环的当前迭代并执行下一次迭代。
通过
不执行任何操作。这是一个空的语句占位符。
我宁愿给你们举个例子,这将更清楚地说明这一点

>>> 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
输出是

>>> 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返回到循环的顶部,继续进行下一次计算。

这样考虑:

Pass:Python只在缩进上工作!不像其他语言,没有空的花括号

所以,如果您不想在条件为真的情况下执行任何操作,那么除了pass之外没有其他选项


继续:这仅在循环的情况下有用。在这种情况下,对于一系列的值,您不希望在该特定过程的条件为true之后执行循环的其余语句,那么您必须使用continue

for循环中通过和继续之间的差异:

那么为什么要传入python?

如果要创建空类、方法或块

示例:

class MyException(Exception):
    pass


try:
   1/0
 except:
   pass

在上面的示例中,如果没有“pass”,将抛出IndentationError。

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

continue
用于在循环中满足某个条件且需要跳过当前迭代并移动到下一个迭代的情况下为否。

pass
仅继续循环或条件。它没有任何作用<代码>继续,用于跳过当前迭代,进入下一个迭代

您可能会问,如果不需要,为什么要使用
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编写空条件、循环或函数。

@S.Lott:example:
while True:;pass#Busy wait for keyboard interrupt(Ctrl+C)
在让我困惑的方式中,我没有发现它的行为是否明确,在这种情况下,它的行为是否等同于继续,或者是否有其他意图。第一句话“通行证声明没有任何作用。”描述了我问题的所有答案,但不知怎么的,它没有引起我的注意。我完全同意你的答案。但是我仍然有一个关于pass关键字的问题,是否需要它?但为什么呢?感谢You@HardikGajjar:由于
pass
关键字没有任何作用,因此它仅在语法上需要缩进套件但不想执行任何操作时才有用。一个常见的例子是,如果要忽略某些异常,可以使用
除了SomeException:pass
。还有许多其他用例。您不需要严格地使用关键字,因为您可以使用任何其他不起任何作用的语句(例如,
0
是一个完全有效的、没有效果的语句),但是有一个关键字可以让你更明确地表示不想做任何事情。@SvenMarnach在风格上不赞成用
pass
来处理异常吗?@MikePalmice一点也不反对。与其他可用的答案有什么特别的区别?那么,如果您不想在条件为真的情况下执行任何操作,则除了通过-->之外没有其他选项,这是不准确的,请参见上文中的Sven Marnach的评论。@patrick抱歉,但他是正确的。例如,如果一个变量既可以是float,也可以是int,并且您希望对所有int执行一个操作,那么您可以简单地使用检查float的if语句,如果语句为
True
则使用
pass
,如果语句为
False
则执行该操作。这样可以高效地扫描多用途列表。
class MyException(Exception):
    pass


try:
   1/0
 except:
   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