我看到有人发布了以下答案来说明如果通过和继续之间的区别。 我知道" 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
答案 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中pass
和continue
之间存在根本区别。 pass
根本不执行任何操作,而continue
跳转到for循环的下一次迭代。语句if not 0
始终评估为True
,因此将执行pass
和continue
语句。 pass
将不执行任何操作并打印该值,而continue
将跳过下一次迭代,忽略下面写的print
语句。