请求协助编写输入统计程序:处理数值输入并计算多项指标
Python 实现方案
以下是满足需求的Python代码,包含完整功能实现和边界处理:
# 初始化统计变量 count = 0 total = 0.0 min_val = float('inf') # 初始化为无穷大,确保第一个输入能覆盖 max_val = float('-inf') # 初始化为负无穷,确保第一个输入能覆盖 while True: # 获取用户输入并转换为浮点数 try: num = float(input("输入数值:")) except ValueError: print("请输入有效的数值!") continue # 输入为0时终止循环 if num == 0: break # 将负数转换为正数 processed_num = abs(num) # 更新统计数据 count += 1 total += processed_num # 更新最小值和最大值 if processed_num < min_val: min_val = processed_num if processed_num > max_val: max_val = processed_num # 避免用户直接输入0导致的除以0错误 if count == 0: print("未输入任何有效数值") else: average = total / count # 按照要求格式输出结果 print(f"总条目数:{count}") print(f"总和:{total}") print(f"平均值:{average}") print(f"最小值:{min_val}") print(f"最大值:{max_val}")
代码关键说明
- 变量初始化:用
float('inf')和float('-inf')作为最小/最大值的初始值,确保第一个有效输入能正确更新这两个值。 - 输入处理:通过
try-except捕获非数字输入的异常,提示用户重新输入,增强程序健壮性。 - 负数转换:使用
abs()函数直接将输入值转为绝对值,满足负数计入总和前转正数的要求。 - 边界处理:判断
count是否为0,避免用户直接输入0时出现除以0的错误。
测试示例
输入:
输入数值:22.5
输入数值:14.5
输入数值:7.2
输入数值:33.1
输入数值:0.0
输出:
总条目数:4
总和:77.3
平均值:19.325
最小值:7.2
最大值:33.1
内容的提问来源于stack exchange,提问作者Matheus Ravani
相关产品推荐
相关产品推荐

