2017-07-18 252 views
-3

我不知道第一个if声明是否为True,是否执行以下elif(即使它们也是True)?if语句的顺序?

我曾尝试:

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

而且只打印 “你好”。但是在我的代码的更复杂的部分中,我看到一些打印输出显示在某些elif语句内,而我只是基本上将第一个打印输出切换为True,以便不应执行任何elif用于测试目的。那么为什么打印在elif内的打印语句?

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

+0

如果if条件为真,则将评估**对应的** elif和else条件和主体。 –

+0

这就是我认为的,直到我看到在打印到标准输出的'elif'内的一些“打印”语句。我必须检查有什么问题...... –

+0

如果你有一个在'true'' if语句下执行的'elif'块的例子,你应该发布它。您发布的代码的行为如预期。 –

回答

-2

我不知道如果我理解正确的这个,但是你试过else

if True: 
    print "Hi" 
else: 
    print "Hello" 

编辑:对不起,明白你的意思了.. 我可能是错的,但“ELIF”的意思是“否则,如果” 所以是这样的东西你basicly写作:

如果我有5个苹果,我把一只手 其他如果我有5个苹果,我把一条腿。

使用elif应该不会在语句/代码的末尾使用。如果你不打算比较两个以上的陈述,请使用'if'和'else'

但是,为什么你应该有2'真'?

+0

事实上,我在结尾'else'之前有一堆6'elif'。 –

+0

然后我明白了,阅读我的编辑,并说如果我现在对它有更好的理解? – ragefocker

+0

这是“快捷方式”一些更深层次的测试,我在例程中运行。我只想提取一般结果,因此我通过设置第一个“if”= True来丢弃所有的“else if”,这样所有其他的都不应该被评估。 –

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 
>>> 
+0

Downvoter,解释。 –

+2

我想这是因为这个问题没有意义,所以好的答案是不可能的... –

+0

这并不回答这个问题(这是无法回答的问题)。 _为什么打印语句在'elif'内打印?_ – miradulo

-3

在[如果,elif的,否则]块仅第1块内的条件,即签出将被执行。 但考虑到你的情况,我想它需要更多的上下文才能完全理解它,发布你正在测试的代码的一部分,或者使用相同的逻辑。