一个简单的python代码,令人惊讶地忽略了条件&声明

时间:2015-09-30 13:02:20

标签: python python-2.7 if-statement

我这里有一个非常简单的代码。但问题是真的困扰我。在第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.')

2 个答案:

答案 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"。