当我尝试猜测随机生成的数字时,正确的猜测永远不会正确,因此内部循环永远不会完成。我已尝试使用print语句进行调试。
from random import randint
print('Welcome to the Number Guessing Game (Numbers 1 - 1000).')
while True:
tries = 0
random_num = randint(1, 10)
print(random_num)
guess = input('guess my number, human: ')
while random_num is not guess:
guess = input('Try again: ')
print(guess)
tries += 1
print('Correct!' + ' It took you' + str(tries) + ' tries.')
答案 0 :(得分:1)
首先,您必须将guess
变量转换为整数。输入只返回字符串,字符串不能等于整数。
你的程序的第二个问题是is
和is not
关键字检查,两个“变量”(在Python中,变量只是对象的引用)是否指向相同的对象。
即使您的猜测是正确的,也可能不是这种情况(即使它们具有相同的值,它们也是不同的对象)。有时这不是问题,因为Python会将“变量”指向同一个对象以提高效率。但你不能确定,可以吗!
请检查:Why does comparing strings in Python using either '==' or 'is' sometimes produce a different result?
无论如何,在类似情况下最好使用==
和!=
运算符,第二个问题将会消失。
答案 1 :(得分:1)
输入错误...
为答案添加更多调试代码
print('random_num',random_num, type(random_num))
print('guess', guess, type(guess))
输出
Welcome to the Number Guessing Game (Numbers 1 - 1000).
random_num 2 <class 'int'>
guess my number, human: 2
guess 2 <class 'str'>
修正:
while random_num is not int(guess):