Python while语句错误

时间:2013-11-01 18:14:04

标签: python python-2.7 while-loop

我是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&lt; y,无论我输入什么号码。 拜托,有人可以帮帮我吗?谢谢。

3 个答案:

答案 0 :(得分:9)

在将yx进行比较之前,您需要将y = int(raw_input("Guess!")) 转换为整数:

x

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

答案 1 :(得分: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()

答案 2 :(得分:1)

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

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

你无法在python中比较两个不同的变量类型!希望这有帮助!