【发布时间】:2012-05-10 05:18:32
【问题描述】:
我是编程新手,在进行输入验证时遇到问题。
我的程序需要输入从 1 到 10 的数字或字母 y,但似乎我无法为此执行错误处理程序。
def checkingInput():
while True:
try:
a = input()
if 10 >= a >= 1 or a == 'y':
return value
else:
print('Invalid input!')
except NameError:
print('Name error!Please try again!')
except SyntaxError:
print('Syntax Error!Please try again!')
【问题讨论】:
-
由于
print(),我认为您正在使用python 3,但您能确认一下吗? -
SyntaxError不是一个通常在运行时发生的异常。 -
我认为你想要
ValueError而不是SyntaxError。此外,您无法将ints与strings进行比较,因此您应该将您的线路更改为if a == 'y' or 1 <= int(a) <= 10 -
另外,如果这是 python 3,你也不需要捕获 NameError