You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python求输入数字最值:首次输入-1时如何直接退出程序

解决首次输入-1时触发ValueError的问题

嘿,这个问题我碰到过好多次了——当用户一上来就输入-1退出,空列表直接喂给max()和min()肯定会炸。咱们来一步步解决它:

问题根源

原代码的逻辑是:输入数字→如果是-1就跳出循环→然后直接计算列表的最大最小值。但如果第一次就输入-1,列表lst是空的,max()和min()没法处理空序列,自然就抛出ValueError了。

修复方案

我们只需要在计算最大最小值之前,先判断列表是否为空。如果为空,直接结束程序(或者给个提示);如果不为空,再正常计算。

修改后的代码如下:

lst = []
while True:
    num = int(input("Please enter a number: "))
    if num == -1:
        break
    lst.append(num)  # 这里优化了原代码的重复int转换,因为num已经是整数啦

# 新增判断:检查列表是否为空
if not lst:
    print("No numbers were entered. Exiting program.")
else:
    print(f"Maximum value: {max(lst)}")
    print(f"Minimum value: {min(lst)}")

额外小优化

原代码里lst.append(int(num))其实是重复转换了——前面已经把输入转成整数赋值给num了,直接lst.append(num)就够,省点不必要的计算。

这样修改后,不管用户是第一次输入-1,还是输入几个数字后再输入-1,程序都能正常运行:首次输入-1时会打印提示并退出,不会触发错误;输入过数字后退出则会正常输出最大最小值。

内容的提问来源于stack exchange,提问作者Umutcan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 07:28:13