我正在学习python,我无法弄清楚为什么以下程序打印你的数字大于我想的,即使猜测的数字较小.就像在python中一样,它是在比较字符串而不是数字?
number = 32
tries = 1
print "I have chosen a number, you have to guess it."
guess = raw_input ("Guess:")
while guess != number:
tries = tries+1
if guess > number:
print("Your guess is greater than i thought")
guess = raw_input ("Another Guess:")
else:
print("Your guess is smaller than i thought")
guess = raw_input ("Another Guess:")
print "You guess it right in %d turns." %tries
Run Code Online (Sandbox Code Playgroud)
PS:我知道这是一个愚蠢的问题,但我是python的菜鸟!
Toj*_*oji 11
raw_input将返回一个字符串.您需要将其解析为数字才能使比较正常工作.我认为那只是int(raw_input(...))
直到现在我才知道这一点,但事实证明,一个字符串总是"大于"Python中的整数:
>>> "0" > 1
True
Run Code Online (Sandbox Code Playgroud)
您需要做的就是更换
guess = raw_input ("Guess:")
Run Code Online (Sandbox Code Playgroud)
同
guess = int(raw_input ("Guess:"))
Run Code Online (Sandbox Code Playgroud)