如何进行验证尝试并且除此之外的错误?

时间:2015-11-24 20:37:43

标签: python function validation try-catch except

我有如下所示的代码,我想创建一个具有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)")

任何想法?

2 个答案:

答案 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)'