如果通过,如果继续在python中

时间:2016-05-09 20:17:57

标签: python if-statement continue

我看到有人发布了以下答案来说明如果通过和继续之间的区别。 我知道" a" list是[0,1,2],我只是不知道结果是什么"如果不是元素"?为什么使用continue时,0不打印,只打印1和2?当a = 0时,"如果不是元素"是"如果不是0",它有特殊意义吗?

>>> 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

6 个答案:

答案 0 :(得分:8)

' 0'由于条件"如果不是元素:"

,则不打印

如果元素为None,False,空字符串('')或0,则循环将继续下一次迭代。

答案 1 :(得分:7)

使用continue次传递来for loop的下一次迭代 使用pass只会做什么 因此,当使用continue时,print将不会发生(因为代码继续下一次迭代)
使用pass时,它只会安静地结束if(实际上什么都不做)并且同时执行print

答案 2 :(得分:4)

来自:https://docs.python.org/2/tutorial/controlflow.html#pass-statements

  

pass语句什么都不做。当语法需要语句但程序不需要操作时,可以使用它。

if not element上方的代码段中,true时评估为element = 0。在python 0中与boolean false相同。在第一个循环pass什么都不做,所以它打印所有三个元素。在第二个循环中,continue将停止执行该迭代的其余循环。所以print语句永远不会执行。所以它只打印1和2.

答案 3 :(得分:3)

if not element:

在这两个示例中,这只会匹配0

pass

nothing 。因此,下一个命令print element将被执行。

continue

这告诉Python停止循环周期并跳到循环的下一个循环。因此永远不会达到print element。相反,for循环将采用下一个值1并从顶部开始。

答案 4 :(得分:1)

continue是一个用于转义最内部迭代体的控制流语句。当您的代码命中

if not element

解释器会跳过未验证到true的所有元素值。 0是一个这样的值,当它没有遇到continue语句时跳到循环的下一次迭代,因此继续打印元素1的值,然后2

相反,pass语句只会跳过并返回到要执行的下一行代码。

答案 5 :(得分:0)

Python中passcontinue之间存在根本区别。 pass根本不执行任何操作,而continue跳转到for循环的下一次迭代。语句if not 0始终评估为True,因此将执行passcontinue语句。 pass将不执行任何操作并打印该值,而continue将跳过下一次迭代,忽略下面写的print语句。