我这里有一个非常简单的代码。但问题是真的困扰我。在第7行中,有一个if条件;令人惊讶的是这个条件永远不会解决! 我运行程序并使用python 2.7版多次检查。它表现得好像if条件及其语句(以及break)在注释中并且被忽略。
from random import randint
random_number = randint(1, 10)
guesses_left = 3
while (guesses_left>=1):
print (random_number)
guess = raw_input('Guess ?')
if guess == random_number: #this statement is never checked?
print ('You win!')
break
guesses_left -= 1
else:
print ('You lose.')
答案 0 :(得分:2)
if guess == random_number: #this statement is never checked?
正在检查 ,但它只是始终 false。
guess
是字符串,因为它来自raw_input
,但random_number
是来自randint
的int。由于字符串永远不能等于int,因此表达式始终为false。
您需要先将输入转换为int:int(guess)
。但请确保在用户未输入数字时检查错误。
答案 1 :(得分:1)
您是否认为random_number
是一个整数,而raw_input()
返回一个字符串?这意味着guess
也是一个字符串。尝试将变量转换为相同的类型!
由于类型不同,值不相等,即使它们在打印时可能看起来如此。换句话说3!=" 3"。