Python没有循环响应

时间:2016-07-24 06:51:55

标签: python shell

这是我的代码:

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(新手),所以会把它放在这里。

3 个答案:

答案 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