Python传递vs.继续

时间:2015-10-25 22:18:45

标签: python

我是Python的新手,无法弄清楚以下语法,

item = [0,1,2,3,4,5,6,7,8,9]
for element in item:
      if not element:
          pass
      print(element)

这给了我所有这些元素,因为Pass将这个步骤跳到下一个

,这是有意义的

但是,如果我继续使用,我会得到以下内容

item = [0,1,2,3,4,5,6,7,8,9]
for element in item:
      if not element:
          continue
      print(element)
[1,2,3,4,5,6,7,8,9]

有人可以告诉我为什么我得不到' 0'? 0不在列表中吗?

3 个答案:

答案 0 :(得分:3)

continue会跳过它之后的语句,而pass则不会这样做。实际上pass什么都不做,对于处理一些语法错误很有用,如:

 if(somecondition):  #no line after ":" will give you a syntax error

您可以通过以下方式处理:

 if(somecondition):
     pass   # Do nothing, simply jumps to next line 

演示:

while(True):
    continue
    print "You won't see this"

这将跳过print语句并且不打印任何内容。

while(True):
    pass
    print "You will see this" 

这将继续打印You will see this

答案 1 :(得分:2)

  • “通过”只是意味着“无操作”。它没有做任何事情。
  • “continue”打破循环并跳转到循环的下一次迭代
  • “not 0”为True,因此元素= 0的“if not element”会触发continue指令,并直接跳转到下一次迭代:element = 1

答案 2 :(得分:1)

pass是无操作。它什么都不做。所以当not element为真时,Python什么也不做,只是继续。你也可以省略整个if测试,看看这里的差异。

continue表示:跳过循环体的其余部分并转到下一次迭代。因此,当not element为真时,Python将跳过循环的其余部分(print(element)行),继续并进行下一次迭代。

not element为0时,

element为真;见Truth Value Testing