基于Python内置函数实现任意数量数值的最值与均值计算
完善温度统计程序(支持任意数量输入)
你需要将原本固定读取6个温度值的程序,修改为支持任意数量输入——用户每次输入一个温度值,按下空回车时终止输入,最终输出所有输入温度的最大值、最小值和平均值,要求使用内置函数或statistics模块实现。
你提供的测试代码存在几个问题:仅读取了单个输入、未处理空输入/非数字输入的情况、statistics.mean()需要传入可迭代对象(如列表)而非单个整数。以下是修正后的完整代码:
import statistics def temp_statistics(): temperatures = [] while True: user_input = input("请输入温度值(直接回车结束输入):") # 空输入时终止循环 if not user_input: break # 尝试转换为浮点数,处理非数字输入的情况 try: temp = float(user_input) temperatures.append(temp) except ValueError: print("输入无效,请输入数字格式的温度值") # 检查是否有有效输入 if not temperatures: print("未输入任何有效温度值") return # 计算并输出结果 max_temp = max(temperatures) min_temp = min(temperatures) mean_temp = statistics.mean(temperatures) print(f"最高温度:{max_temp:.2f}") print(f"最低温度:{min_temp:.2f}") print(f"平均温度:{mean_temp:.2f}") temp_statistics()
关键说明:
- 使用
while True循环持续接收输入,直到用户输入空字符串(直接回车) - 加入
try-except块处理非数字输入,避免程序崩溃 - 将所有有效温度存入列表
temperatures,作为后续统计函数的输入 - 调用内置函数
max()、min()获取最值,使用statistics.mean()计算平均值 - 处理无有效输入的边界情况,避免触发统计函数的报错
- 用
:.2f格式化输出,保留两位小数,结果更直观
内容的提问来源于stack exchange,提问作者Panayiotis Pyrgotis
相关产品推荐
相关产品推荐

