我想知道第一个if
语句是否为True,是否执行了以下elif
(即使它们也是True)?
我试过了:
if True:
print "Hi"
elif True:
print "hello"
它只打印“嗨”。但是在我的代码的一个更复杂的部分,我看到一些打印输出显示在一些elif
语句中,我只是基本上将第一个if切换为True,这样就不会执行任何elif
用于测试目的。那么为什么打印语句在elif
打印?
(代码太长了,不能在这里打印,我只是想知道它是不是没有......的答案。)
答案 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]块中,只会执行具有检出条件的第一个块。 但考虑到你的情况,我想它需要更多的上下文来完全理解它,发布你正在测试的部分代码或具有相同逻辑的东西。