Python 3.5.1 Python简介2.1 Mark Clarkson - While循环问题

时间:2016-02-08 16:50:19

标签: python-3.x while-loop

我正在通过这套教程。在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!")

2 个答案:

答案 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!")