2013-10-13 42 views
0

所以我想弄清楚如何解決這個問題。假設我有幾個if語句和一個else語句。當我做出屬於if的選擇時,出現else語句也運行。例如:Python如果條件語句流?

option = float(input("Select Option")) 

if (option == 1): 
    print("Population Group 1") 

if (option == 2): 
    print("Population Group 2") 

else: 
    print("Invalid Selection") 

print("Testing") 

樣本輸出是:

Select Option1 
Population Group 1 
Invalid Selection 
Testing 

爲什麼這種情況正在發生或如何解決這個任何想法?

回答

0

將您的第二個if聲明更改爲elif聲明。

option == 1你的控制流程是這樣的:

check first IF statement -> True (no ELSE block to skip) 

check second IF statement -> False, continue to ELSE block 

execute ELSE block 

你想要什麼:

check first IF statement -> True, skip ELSE block 
3

else語句只涉及到最後if。到鏈既if S到else,使用if/elif/.../else序列:

if option == 1: 
    print("Population Group 1") 

elif option == 2: 
    print("Population Group 2") 

else: 
    print("Invalid Selection") 
0

爲了確保只有第一條件匹配,避免了級聯效應,使用elif的

option = float(input("Select Option")) 

if option == 1: 
    print("Population Group 1") 

elif option == 2: 
    print("Population Group 2") 

else: 
    print("Invalid Selection") 
print("Testing") 
+0

這是一個SyntaxError,你應用'elif'有點過於寬鬆那裏。 – roippi

+0

@roippi:對!謝謝 :) – user278064

0

看看python documentation on control flow tools。您只需通過elif更換第二if

option = float(input("Select Option")) 

if (option == 1): 
    print("Population Group 1") 

elif (option == 2): 
    print("Population Group 2") 

else: 
    print("Invalid Selection") 

print("Testing")