我需要帮助验证来自(随机)问题的输入,我要求确保用户输入只是一个数字,而不是字母或任何其他随机字符。此外,验证还应该有一条错误消息,通知用户他们做错了什么,并重复他们提出问题的机会。
到目前为止,我需要验证的代码部分如下:
def quiz():
x = random.randint(1, 10)
y = random.randint(1, 10)
ops = {'+': operator.add,'-': operator.sub,'*': operator.mul}
keys = list(ops.keys())
opt = random.choice(keys)
operation = ops[opt]
answer = operation(x, y)
print ("\nWhat is {} {} {}?".format(x, opt, y))
userAnswer= int(input("\nYour answer: "))
if userAnswer != answer: #validate users answer to correct answer
print ("\nIncorrect. The right answer is",answer,"")
print ("\n============= 8 =============")
return False
else:
print("\nCorrect!")
print ("\n============= 8 =============")
return True
for i in range(questions): #ask 10 questions
if quiz():
score +=1
print("\n{}: You got {}/{} questions correct.".format(name, score, questions,))
提前致谢!
答案 0 :(得分:2)
使用try...except
:
while True:
userAnswer = input("\nYour answer: ")
try:
val = float(userAnswer)
break
except ValueError:
print("That's not a number!")
如果您只想要整数,请使用int
代替float
。
答案 1 :(得分:0)
您可以使用函数验证整数输入:
def int_validation(user_Input):
try:
val = int(user_Input)
except ValueError:
print(user_Input,' not an integer!')
答案 2 :(得分:0)
单行:
['/gallery/', '/nika/']
答案 3 :(得分:-2)
最好让函数接受你的输入。然后,这可以继续提示用户,直到输入有效数字:
def get_number(prompt):
while True:
try:
return int(input(prompt))
except ValueError:
print("Please enter a number")
然后您可以按如下方式更改输入行:
userAnswer = get_number("\nYour answer: ")