我的Python模块不起作用

时间:2013-12-09 19:02:56

标签: 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")

1 个答案:

答案 0 :(得分: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语句将始终传递。