提问者:小点点

在给定输入中用python求最大和最小数


lst = []
while True:
    num = int(input("Please enter a number: "))
    if num == -1:
        break
    lst.append(int(num))
print(max(lst))
print(min(lst))

这是代码。 它可以工作,但是当我输入-1作为第一个数字时,它会给出一个类似“valueError:max()arg is an empty sequence”的错误。

当输入-1作为第一个数字时,我如何能直接退出程序?


共3个答案

匿名用户

如果ypu输入-1作为第一个数字,那么在实际将其添加到列表之前,您就脱离了循环。 因此,列表是空的,这解释了您的错误。

匿名用户

break只在循环中中断,print()函数仍在执行。 由于lst是一个空列表,因此它没有max(),因此出现了错误。

要退出程序,请执行以下操作:

lst = []
while True:
    num = int(input("Please enter a number: "))
    if num == -1:
        sys.exit()
    lst.append(int(num))
if lst:
    print(max(lst))
    print(min(lst))

匿名用户

在这种情况下,您可以使用try-catch代码块来检测错误并按如下方式管理它:

try:
    ... code that throws error ...
except ValueError:
    ... Handling of the ValueError ...
else:
    ... Normal case with no errors ...