我有如下所示的代码,我想创建一个具有try和except错误的函数,这样当你输入除1,2或3以外的任何东西时它会让你重新输入它。以下是询问您年龄的行。
Age = input("What is your age? 1, 2 or 3: ")
以下是我到目前为止尝试实现我想要的目标。
def Age_inputter(prompt=' '):
while True:
try:
return int(input(prompt))
except ValueError:
print("Not a valid input (an integer is expected)")
任何想法?
答案 0 :(得分:0)
在返回之前添加一个检查,如果检查失败则提高:
def Age_inputter(prompt=' '):
while True:
try:
age = int(input(prompt))
if age not in [1,2,3]: raise ValueError
return age
except ValueError:
print("Not a valid input (an integer is expected)")
答案 1 :(得分:0)
这可能有效:
def Age_inputter(prompt=' '):
while True:
try:
input_age = int(input(prompt))
if input_age not in [1, 2, 3]:
# ask the user to input his age again...
print 'Not a valid input (1, 2 or 3 is expected)'
continue
return input_age
except (ValueError, NameError):
print 'Not a valid input (an integer is expected)'