0

我想知道如何处理 python 上的多个错误。

例如:

用户输入一个介于 0 和 9 之间的整数。如果该整数超出范围,则程序会这样说并要求另一个输入,直到获得有效输入。如果输入不是一个整数,那么程序会说它是一个无效的输入,并要求另一个输入,直到获得一个有效的输入。最后,如果没有提供输入,那么程序会说需要一个输入,并要求另一个输入,直到获得一个有效的输入。对于单个输入变量,必须区分这三个错误。

我在这里先向您的帮助表示感谢

4

3 回答 3

0

这样的事情可能会有所帮助:

valid = False
while not valid:
    in_val = input("Enter an integer: ")
    if not in_val:
        print("No input was given, please try again.")
        continue

    try:
        in_num = int(in_val)

        if in_num < 0 or in_num > 9:
            print("The value entered is out of the valid range (0-9).")
            continue
        valid = True
    except ValueError:
        print("The value entered was not a number, try again.")
        continue
于 2014-05-27T02:58:18.070 回答
0

如果您想根据多个标准验证用户输入并在其中任何一个失败时继续询问新输入,您可能需要一个持续循环直到获得有效结果:

result = None
while result is None:
    input_str = input("Enter an integer between 0 and 9:")
    if input_str == "":
        print("An empty input is not valid.")
    else:
        try:
            result = int(input_str)
            if not 0 <= result <= 9:
                print("That number out of bounds.")
                result = None
        except ValueError:
            print("That is not an integer.")

# do stuff with result here
于 2014-05-27T03:18:42.210 回答
0

尝试这样的事情:

wrong = True
while wrong:
        num = input("Enter a number between 0 and 9: ")
        if not num:
                print("Please enter valid input.")
                continue

        try:
                num = int(num)
        except ValueError:
                print("Please enter valid input.")
                continue

        if num < 0 or num > 9:
                print("Please enter a number between 0 and 9.")
                continue

        wrong = False

print(num)

这运行为:

bash-3.2$
Enter a number between 0 and 9: 
Please enter valid input.
Enter a number between 0 and 9: 
Please enter valid input.
Enter a number between 0 and 9: hhello
Please enter valid input.
Enter a number between 0 and 9: 90
Please enter a number between 0 and 9.
Enter a number between 0 and 9: -2324
Please enter a number between 0 and 9.
Enter a number between 0 and 9: aisjdo93rwfeljks
Please enter valid input.
Enter a number between 0 and 9: 5
5
于 2014-05-27T03:48:28.783 回答