这是我的代码:
from random import randint
doorNum = randint(1, 3)
doorInp = input("Please Enter A Door Number Between 1 and 3: ")
x = 1
while (x == 1) :
if(doorNum == doorInp) :
print("You opened the wrong door and died.")
exit()
现在,如果我碰巧得到了不吉利的数字,那就行得很好。
else :
print("You entered a room.")
doorNum = randint(1, 3)
这是它完全停止响应的部分。我在一个bash交互式shell(终端,在osx上)运行它。它只是空白。
我是Python新手编程的新手,我花了大部分时间作为Web开发人员。
更新
谢谢@rawing,我还不能upvote(新手),所以会把它放在这里。
答案 0 :(得分:0)
如果您使用的是python3,那么input
将返回一个字符串,并且将字符串与int进行比较始终为false,因此您的exit()
函数永远不会运行。
答案 1 :(得分:0)
您的doorInp变量是一个字符串类型,这会导致问题,因为您将它与if语句中的整数进行比较。您可以通过在输入行之后添加print(type(doorInp))
之类的内容来轻松检查。
要修复它,只需将输入语句包含在int()中,如:doorInp = int(input("...."))
答案 2 :(得分:-1)
在python3中,input
函数返回字符串。您将此字符串值与随机 int 值进行比较。这将始终评估为False
。由于您只需要用户输入一次,在循环之前,用户永远不会有机会选择新的数字,并且循环会不断地将随机数与字符串进行比较。
我不确定你的代码到底应该做什么,但你可能想做这样的事情:
from random import randint
while True:
doorNum = randint(1, 3)
doorInp = int(input("Please Enter A Door Number Between 1 and 3: "))
if(doorNum == doorInp) :
print("You opened the wrong door and died.")
break
print("You entered a room.")
另请参阅:Asking the user for input until they give a valid response