2

我是python的初学者。我的程序是设置一个数字(我暂时不使用 random.randint),然后我尝试猜测它。所以这里是代码:

def game():
    print "I am thinking of a number between 1 and 10!"
    global  x
    x = 7
    y = raw_input("Guess!")
    while x > y:
        y = raw_input("Too low. Guess again!")
    while x < y:
        y = raw_input("Too high. Guess again!")
    if x == y:
        return "You got it! The number was" + x + " !"

但是当我运行这个程序时,无论我输入什么数字,程序都会指出 x < y。请问,有人可以帮我吗?谢谢你。

4

3 回答 3

9

y在将其与以下内容进行比较之前,您需要转换为整数x

y = int(raw_input("Guess!"))

否则,您是在比较不同类型的变量,结果并不总是直观的(例如x总是小于y)。您可以在要求用户输入的其他时间应用相同的方法y

于 2013-11-01T18:15:02.293 回答
4

你可能想要这个:

def game():
    print "I am thinking of a number between 1 and 10!"
    global  x
    x = 7
    while True:
        y = int(raw_input("Guess! ")) # Casting the string input to int
        if x > y:
            y = raw_input("Too low. Guess again!")
        elif x < y:
            y = raw_input("Too high. Guess again!")
        elif x == y:
            print "You got it! The number was " + str(x) + " !"
            break # To exit while loop

game()
于 2013-11-01T18:17:19.817 回答
1

Y 必须是像 x 一样的整数。一个简单的方法是:

y=int(raw_input("etc."))

您无法在 python 中比较两种不同的变量类型!希望这可以帮助!

于 2013-11-01T18:44:29.560 回答