我是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,无论我输入什么号码。 拜托,有人可以帮帮我吗?谢谢。
答案 0 :(得分:9)
在将y
与x
进行比较之前,您需要将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中比较两个不同的变量类型!希望这有帮助!