if语句的顺序?

时间:2017-07-18 18:04:19

标签: python-2.7 if-statement

我想知道第一个if语句是否为True,是否执行了以下elif(即使它们也是True)?

我试过了:

if True:
    print "Hi"
elif True:
    print "hello"

它只打印“嗨”。但是在我的代码的一个更复杂的部分,我看到一些打印输出显示在一些elif语句中,我只是基本上将第一个if切换为True,这样就不会执行任何elif用于测试目的。那么为什么打印语句在elif打印?

(代码太长了,不能在这里打印,我只是想知道它是不是没有......的答案。)

3 个答案:

答案 0 :(得分:1)

elif只会输入如果条件匹配上一个条件不匹配

>>> if x == True:
...     print 'hi'
... elif x == False:
...     print 'bye'
... 
hi
>>> if x == True:
...     print 'hi'
... elif x == True:
...     print 'bye' #not entered because previous condition was valid
... 
hi
>>> 

答案 1 :(得分:-2)

我不确定我是否理解这一点,但您是否尝过else

if True:
  print "Hi"
else:
  print "Hello"
编辑:对不起,明白你的意思了.. 我可能错了,但“elif”的意思是“其他如果” 所以你基本上写的是这样的:

如果我有5个苹果,我举起一只手 否则,如果我有5个苹果,我就竖起一条腿。

但是,

使用elif不应该在语句/代码的末尾使用。如果您不打算比较超过2个语句,请使用“if”和“else”

但为什么你要2'真'?

答案 2 :(得分:-3)

在[if,elif,else]块中,只会执行具有检出条件的第一个块。 但考虑到你的情况,我想它需要更多的上下文来完全理解它,发布你正在测试的部分代码或具有相同逻辑的东西。