为什么python不能识别我的输入

时间:2018-02-06 02:37:08

标签: python

所以我正在编写一个程序,应该从用户那里输入1或2,并将输入添加到总数中,直到总数达到21.我有一个while语句确保输入是1或2但是当我测试它时无论输入什么输入它都显示1和2是不合格的答案。所以我不知道我是否错误地为我的while语句写了参数,或者我的输入是否被正确识别。

enter image description here

如果有人可以告诉我如何让我的代码继续运行,如果输入1或2,那么我将非常感激。谢谢。

2 个答案:

答案 0 :(得分:2)

请记住,raw_input()的输入将是一个字符串,因此在比较时,请使用:

increase != "1"

另外我认为你实际上在寻找这个:

increase != "1" and increase != "2"

请注意,我已通过

更改

要使用int作为输入,您可以执行以下操作:

int(raw_input("Insert number here"))

答案 1 :(得分:0)

正如user1532587所解释的:您正在将字符串与整数进行比较。这就是它。
但是,使用raw_input()是正确的方法。我不建议在Python 2.x中使用input()。

请记住,实际上不需要使用print语句和raw_input语句,您可以轻松地将它们组合在一起:

increase = raw_input("player 1: blabla while the total is {}".format(current))

.format(current)只是 - 在我看来 - 比#34更好的习惯;"%current

顺便说一下,处理输入的常用方法是使用尝试,除了
总而言之,它看起来像这样:

def play_twentyone():

    current = 0

    while current < 21:

        increase = raw_input("player1: blabla the total is {}\n".format(current))

        while True:

            try:
                if int(increase) in [1,2]: break 
            except ValueError: #handling the error which could occur, e.g int("five")
                pass

            increase = raw_input("Invalid input, please try again\n")

        current += int(increase)

或者使用字符串的简单方法,而不是整数:

def play_twentyone():

    current = 0

    while current < 21:

        increase = raw_input("player1: blabla the total is {}\n".format(current))

        while increase not in ("1","2"):
            increase = raw_input("Invalid input, please try again\n")

        current += int(increase)

请注意:

increase not in "12"

也接受空字符串/输入 - &gt;不行