Python返回函数问题及输入循环程序优化需求咨询
问题修复:输入错误时保留已输入内容并优化提示
原代码的核心问题是将整个输入循环包裹在try块中,一旦输入非整数触发异常,会回到外层循环重新创建空列表,导致之前的输入全部丢失。我们需要把异常处理缩小到单次输入的逻辑上,让错误输入仅触发提示,不会清空已输入的有效内容。
修改后的代码如下:
largest = None smallest = None num_list = [] # 避免使用Python内置关键字`list`作为变量名 while True: x = input("Enter a number (type 'done' to finish): ") if x == 'done': break try: num = int(x) num_list.append(num) largest = max(num_list) smallest = min(num_list) except ValueError: print("请输入整数") continue if num_list: # 处理未输入任何有效数字就输入done的情况 print("最小值是: ", smallest) print("最大值是: ", largest) else: print("没有输入任何有效数字")
关键修改说明:
- 将
try-except仅用于捕获单次输入转整数的异常,错误输入只会触发提示,不会影响已有的列表内容。 - 替换变量名
list为num_list,避免与Python内置类型关键字冲突。 - 提前判断输入是否为
done,逻辑更清晰,无需在异常分支中处理结束指令。 - 增加空列表判断,防止用户直接输入
done导致max()/min()调用报错。
内容的提问来源于stack exchange,提问作者Akon
相关产品推荐
相关产品推荐

