首页 > 解决方案 > 如何显示无效输入

问题描述

我的任务是:

编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效数字,请使用 try/except 捕获它并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。

我想在计算最大和最小数字后忽略任何无效整数并打印“无效输出”消息。但它总是在用户输入后立即打印无效消息。我该怎么解决这个问题?提前致谢。

代码:

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done":
        break
    try:
        n = int(num)
    except:
        print('Invalid input')
    if largest is None:
        largest=n
    elif n>largest:
        largest=n
    elif smallest is None:
        smallest=n
    elif n<smallest:
        smallest=n
print("Maximum", largest)
print('Minimum', smallest)

标签: python-3.xuser-inputtry-exceptinvalidoperationexception

解决方案


您可以将其存储invalid output为布尔变量

largest = None
smallest = None
is_invalid=False
while True:
    num = input("Enter a number: ")
    if num == "done":
        break
    try:
        n = int(num)
    except:
        is_invalid=True
    if largest is None:
        largest=n
    elif n>largest:
        largest=n
    elif smallest is None:
        smallest=n
    elif n<smallest:
        smallest=n
print("Maximum", largest)
print('Minimum', smallest)
if is_invalid:
    print('Invalid Input')

推荐阅读