2017-07-18 251 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塊內的條件,即簽出將被執行。 但考慮到你的情況,我想它需要更多的上下文才能完全理解它,發佈你正在測試的代碼的一部分,或者使用相同的邏輯。