2013-12-09 40 views
-5

我不是专业人员,我没有长时间编程,但为什么不工作?我的Python模块不会工作

door = input("I Have Found A Haunted House,Should I Go In?") 

if door == "yes" or "Yes" or "YES": 
    print("Ok! I Am Going In") 

else: 
    print("What?") 


while door == "no" or "No" or "NO": 
    print("Awwh Thats A Shame, I Was Getting Excited") 
+3

“不起作用”是什么意思? – Marcin

+0

Offtopic:我认为你的电脑上有“.title()”病毒...;) – mchfrnc

+2

如果用户输入“no”,你是否真的想无限打印最后一条消息? – David

回答

4

别担心,这是一个非常常见的错误。

这里需要使用in

if door in ("yes", "Yes", "YES"): 

,或者甚至更好,str.lower

if door.lower() == "yes": 

这样做的原因就是,Python评估非空字符串作为True。所以,你的代码实际上是被这样解释:

if (door == "yes") or ("Yes") or ("YES"): 
# True/False  True  True 

正如你可以看到,这个if语句将总是通。