我正在通过这套教程。在3.2a部分 - While循环中,以下代码应该循环,直到用户输入目标数字(7)然后显示祝贺消息,但无论输入什么数字,Python都会给出正确答案或错误答案,即使是7将有时会标出错误的答案。我知道还有其他方法可以执行此类任务,但我希望从教程中获取代码。
targetNumber = 7
guess = input("Guess a number between 1 and 10 ")
while guess != targetNumber:
print("Wrong, try again ")
guess = input("Guess a number between 1 and 10 ")
print("Congratulations - that's right!")
答案 0 :(得分:2)
您应该在比较之前将目标数字转换为字符串。此外,您应该从循环中排除祝贺消息。我建议:
targetNumber = str(7)
guess = input("Guess a number between 1 and 10 ")
while guess != targetNumber:
print("Wrong, try again ")
guess = input("Guess a number between 1 and 10 ")
print("Congratulations - that's right!")
详细信息是输入返回一个字符串,如果将字符串与整数进行比较,它将始终返回false。
答案 1 :(得分:1)
Python的输入函数(或Python 2.x中的raw_input)返回用户输入的字符串。另一方面,targetNumber是一个整数。在Python Interpreter中,尝试:
>>> 7 == "7"
False
您需要先将用户的输入强制转换为整数。
try:
guess = int(input("Please enter a number: "))
except ValueError:
print("That is not a valid number!")