python中的if-pass和if-continue
我看到有人发布了下面的答案,以区分python中的if-pass和if-continue,python,if-statement,continue,Python,If Statement,Continue,我看到有人发布了下面的答案,以区分如果x:pass和如果x: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 ..
如果x:pass
和如果x: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
当
a=0
时,如果不是元素
的结果是什么?为什么在使用continue
时不打印0?continue
是一个控制流语句,用于转义迭代的最内层。当你的代码命中时
if not element
解释器跳过所有未验证为true
的元素值。0就是这样一个值,当它没有遇到continue语句时,它会跳到循环的下一次迭代,因此会继续打印元素1
的值,然后再打印2
相反,pass语句只会跳过并返回到下一行代码执行。使用
continue
对for循环的下一次迭代进行pass
使用pass
什么都不做
因此,当使用continue
时,print
将不会发生(因为代码将继续进行下一次迭代)
当使用pass
时,它将和平地结束(实际上什么也不做),并从以下位置打印:
pass语句不执行任何操作。当语法上需要语句,但程序不需要操作时,可以使用它
在上面的代码片段中,当element=0
时,元素将计算为true
。在python中,0
与布尔值false相同。在第一个循环中,pass
不执行任何操作,因此它将打印所有三个元素。在第二个循环中,continue将停止该迭代的其余循环的执行。所以print语句永远不会执行。所以它只打印1和2
if not element:
在这两个示例中,这将只匹配0
pass
这没用。因此,将执行下一个命令,print element
continue
这告诉Python停止这个for循环,并跳到循环的下一个循环。因此,打印元素
将永远无法访问。相反,for循环将取下一个值,1
,并从顶部开始。Python中的pass
和continue
之间有一个根本的区别pass
什么也不做,而continue
跳到for循环的下一个迭代。如果不是0,则语句的计算结果总是True
,因此pass
和continue
语句都将执行pass
将不执行任何操作并打印值,continue
将跳过下一次迭代,忽略下面写入的print
语句。'0'因条件“if not element:”
如果元素为None、False、空字符串(“”)或0,则循环将继续进行下一次迭代。它不限于None
和0
。如果元素为False,它将继续。if not 1是否表示False?那么为什么用continue打印1呢?此外,如果有人写“如果没有”,它也会继续不打印吗?谢谢。是的if not 1
表示False
。在这种情况下,条件将失败,执行将继续执行print
语句。这就是在代码中打印1的原因<只有当
的值为任何假值,如无、假、空字符串(“”)或0时,否则将为真
。2) if None
表示总是False
所以如果我理解正确,continue
是说“请在循环中输入下一个值”?并且仅当if
语句为False
时才“continue”?