2015-02-09 49 views
0

只是搞亂了Python 3的功能和用戶輸入,但是爲什麼!=真的不行?如果用戶輸入YES或YES,它仍然會產生信息「無效答案,YES或NO Only!」?用戶輸入程序不工作,「!=」?

感謝

def program(): 
    valid_answers = ("YES", "yes", "NO", "no") 
    variable_input = input("Are bananas yellow? Answer YES or NO: ") 

    if variable_input != valid_answers: 
     print("Invalid answer. YES or NO only!") 
     program() 

    elif variable_input == "YES": 
     print("Correct! They are!") 
     program() 
    elif variable_input == "yes": 
     print("Correct! They are!") 
     program() 
    elif variable_input == "NO": 
     print("Try again. They are definitely yellow.") 
     program() 
    elif variable_input == "no": 
     print("Try again. They are definitely yellow.") 
     program() 
program() 

回答

3

首先,我會做valid_answers列表。 !=表示不等於或等同於。 !相反的=,你not in。你應該寫這樣的代碼:

def program(): 
    valid_answers = ["YES", "yes", "NO", "no"] # Note the change from tuple to list 
    variable_input = input("Are bananas yellow? Answer YES or NO: ") 

    if variable_input not in valid_answers: # Note the != to not in 
     # do something 

    # rest of your code 

迴應評論...

對於input多種選擇,你可以使用一個元組和「掃描」它是否存在於元組variable_input,然後按照一個動作,像這樣:

elif variable_input == ("yes", "YES"): 
    # do something 

現在,如果我沒有記錯,在Python 3你也可以使用,而不是一個元組or操作。 :)

+0

感謝您的支持。很顯然,Python編程非常新,找到我的腳,但是謝謝你。有什麼辦法可以壓縮:elif variable_input ==「NO」: print(「再試一次,它們肯定是黃色的。」) program() elif variable_input ==「no」: print(「再試一次。絕對是黃色的。「) – luanswan2002 2015-02-09 00:16:32

+0

沒問題!很高興我能幫上忙!如果您需要其他任何東西,請隨時詢問! – Zizouz212 2015-02-09 00:17:15

+0

看看編輯,希望能解決它! – Zizouz212 2015-02-09 00:19:36

2

你檢查是否variable_input硬是不等於元組。你想檢查是否variable_inputnot in元組。

if variable_input != valid_answers: 

應該是:

if variable_input not in valid_answers: 
+0

感謝。有沒有什麼辦法可以將代碼壓縮到類似的東西:elif variable_input ==「NO」或「no」:print ... – luanswan2002 2015-02-09 00:20:25

1

更正:

if variable_input != valid_answers:應該if variable_input not in valid_answers:

而且可以減少if語句是這樣的:

最終方案:

def program(): 
    valid_answers = ("YES", "yes", "NO", "no") 
    variable_input = input("Are bananas yellow? Answer YES or NO: ") 

    if variable_input not in valid_answers: 
     print("Invalid answer. YES or NO only!") 
     program() 
    elif variable_input in ["YES", "yes"]: 
     print("Correct! They are!") 
     program() 
    elif variable_input in ["NO", "no"]: 
     print("Try again. They are definitely yellow.") 
     program() 

program()