我对Python非常了解,正如预期的那样,我经常在编写脚本时遇到问题而且通常不确定如何修复它们。
我正在制作一款小游戏,您可以尝试猜测该程序随机选择的数字。我已经走得很远了,但我注意到当我什么都没输入时,程序只显示一条错误信息。我希望程序显示文本“输入一个数字”。在这种情况下,然后再次提示“你的猜测:”输入,但经过大量的研究,我真的不知道如何在我的代码中成功实现该功能。我的问题,特别是“尝试和除外”部分 - 我真的不知道如何正确地编写它们,但我在这里看到另一个帖子建议使用它们。
import random
def question():
print("Guess a number between 1 and 100.")
randomNumber = random.randint(1, 100)
found = False
while not found:
myNumber = int(input("Your guess: "), 10)
try:
myNumber = int(input("Your guess: "), 10)
except ValueError:
print("Enter a number.")
if myNumber == randomNumber:
print("Correct!")
found = True
elif myNumber > randomNumber:
print("Wrong, guess lower!")
else:
print("Wrong, guess higher!")
question()
你应该能够在我写的代码中看到我的意图,谢谢。
答案 0 :(得分:1)
你几乎是对的。处理异常后继续下一次迭代。
import random
def question():
print("Guess a number between 1 and 100.")
randomNumber = random.randint(1, 100)
found = False
while not found:
try:
myNumber = int(input("Your guess: "), 10)
except Exception:
print('Enter a number.')
continue
if myNumber == randomNumber:
print("Correct!")
found = True
elif myNumber > randomNumber:
print("Wrong, guess lower!")
else:
print("Wrong, guess higher!")
question()
答案 1 :(得分:0)
您可以编写如下函数:
def input_num(input_string):
""" This function collects user input
Args:
input_string: message for user
Return:
user_input: returns user_input if it is a digit
"""
user_input = raw_input("{}: ".format(input_string))
if not user_input.isdigit():
input_num(input_string)
return int(user_input)
然后调用此函数
user_num = input_num("Enter a number")
它会一直要求用户提供有效的输入,直到用户输入一个
答案 2 :(得分:0)
我很困惑你为什么要求输入两次。您只需要询问他们输入一次。之后,您需要在except语句中添加一个continue。否则,它不会重复,只是结束程序。这就是你修改的while循环应该是什么样的。
while not found:
try:
myNumber = int(input("Your guess: "), 10)
except ValueError:
print("Enter a number.")
continue
if myNumber == randomNumber:
print("Correct!")
found = True
elif myNumber > randomNumber:
print("Wrong, guess lower!")
else:
print("Wrong, guess higher!")
答案 3 :(得分:0)
只需使用continue
中的except
关键字继续循环播放。
except ValueError:
print('Enter a number')
continue