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作为第一个数字时,我如何能直接退出程序?
如果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 ...