python中for循环中的`continue`和`pass`是否有区别?

这两个python关键字之间是否有任何显着的差异,如示例中的continuepass

 for element in some_list: if not element: pass 

 for element in some_list: if not element: continue 

我应该知道吗?

是的,他们做了完全不同的事情。 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意味着“没有代码在这里执行”,并继续通过余数或循环体。

运行这些,看看不同之处:

 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 

在你的例子中,没有区别,因为这两个语句都出现在循环结尾。 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将继续处理。

如果循环的结尾是循环的结尾,那么差异是可以忽略的,因为stream量将会回到循环的顶部。

是,有一点不同。 Continue实际上跳过当前循环的其余部分(返回到开头)。 Pass是一个空话,什么也不做。

看到python文档

在这些例子中,没有。 如果声明不是循环中的最后一个,那么它们具有非常不同的效果。

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

通行证没有做任何事情。 计算不受影响。 但是,继续回到循环的顶部去处理下一个计算。