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

She*_*lly 18 python if-statement continue

我看到有人发布了以下答案来说明如果通过和继续之间的区别.我知道"a"列表是[0,1,2],我只是不知道"if not element"的结果是什么?为什么使用continue时,0不打印,只打印1和2?当a = 0时,"if not element"是"if not 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
Run Code Online (Sandbox Code Playgroud)

Ano*_*oop 11

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

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

  • 它不仅限于"无"和"0".如果元素为Falsey,它将继续. (2认同)

Neo*_*Neo 7

使用continue通行证的下一个迭代for loop
使用pass少了点什么
所以当使用continueprint不会发生(因为代码继续下一次迭代),
而且使用时pass它会刚刚结束的if和平(什么都不做实际上),然后执行print,以及


C14*_*14L 6

if not element:
Run Code Online (Sandbox Code Playgroud)

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

pass
Run Code Online (Sandbox Code Playgroud)

这没有任何作用。因此print element,将执行下一个命令。

continue
Run Code Online (Sandbox Code Playgroud)

这告诉 Python 停止这个 for 循环循环并跳到循环的下一个循环。所以print element永远达不到。相反,for 循环将取下一个值,1并从顶部开始。


Ved*_*hta 6

PythonpasscontinuePython之间存在根本区别。pass只是什么都不做,而continue跳转到 for 循环的下一次迭代。该语句的if not 0计算结果始终为True,因此passcontinue语句都将被执行。pass将什么都不做并打印值,而continue将忽略print下面写的语句跳到下一次迭代。


小智 5

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

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

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


Spa*_*ade 1

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

if not element
Run Code Online (Sandbox Code Playgroud)

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

相反,pass 语句除了跳过并返回到要执行的下一行代码之外什么也不做。