Python中如何使用数字0作为终止条件实现数值统计功能
问题原因
你现有代码的问题在于没有对输入值做判断,所有输入直接追加到列表,只有输入非数字内容触发int转换报错时才会跳出循环,自然无法响应输入0的终止逻辑。
调整后代码
user_list = [] print("输入0时将输出以下统计结果:\n\t 1. 总和 \n\t 2. 平均值 \n\t 3. 最小值 \n\t 4. 最大值") while True: try: input_num = int(input("请输入数字后按回车:")) # 遇到输入0直接终止循环,不存入列表 if input_num == 0: break user_list.append(input_num) except ValueError: print("输入无效,请输入合法数字") if not user_list: print("未输入任何有效数字,无统计结果") else: sum_val = sum(user_list) avg_val = sum_val / len(user_list) min_val = min(user_list) max_val = max(user_list) print("统计结果:") print(f"总和:{sum_val}") print(f"平均值:{avg_val:.2f}") print(f"最小值:{min_val}") print(f"最大值:{max_val}")
核心修改说明
- 把异常捕获放到循环内部,仅用来处理非数字输入的场景,输入非法时给出提示后要求重新输入,不会直接终止程序
- 每次输入转成数字后先判断是否为0,是就直接跳出循环,不把0存入列表
- 统计计算全部使用Python内置函数,无需导入任何库,满足要求
- 新增空列表判断逻辑,避免用户未输入任何有效数字直接输0时,计算平均值、最值触发报错
内容的提问来源于stack exchange,提问作者Jomo
相关产品推荐
相关产品推荐

