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
相关产品推荐
相关产品推荐

