Zylabs Python统计程序修正:如何处理浮点数并输出指定格式结果
处理任意非负浮点数的最大值与平均值计算
需求概述
接受任意数量的非负浮点数作为输入,分别输出最大值和平均值,结果需保留两位小数。例如输入14.25 25 0 5.75时,输出应为25.00 11.25。
原有代码的问题
提供的代码仅支持整数输入,无法处理小数,且输出格式不符合要求:
user_input = input() tokens = user_input.split() nums = [] for token in tokens: nums.append(int(token)) avg = sum(nums) / len(nums) print(int(avg), max(nums))
修正方案
- 支持浮点数解析:将
int(token)替换为float(token),这样可以正确处理带小数的输入值 - 保留小数格式输出:移除对平均值的
int()转换,使用字符串格式化确保结果保留两位小数 - 边界情况处理:增加空输入的判断,避免出现除以零的运行错误
完整修正代码
user_input = input() tokens = user_input.split() nums = [float(token) for token in tokens] if not nums: print("0.00 0.00") else: max_value = max(nums) average = sum(nums) / len(nums) print(f"{max_value:.2f} {average:.2f}")
代码说明
- 使用列表推导式简化了浮点数转换的代码,比原循环更简洁高效
- 空输入判断确保程序在没有输入值时也能正常输出合法结果
- 通过
f-string的: .2f格式符,自动将数值格式化为保留两位小数的字符串,满足输出要求
内容的提问来源于stack exchange,提问作者Darren Robinson
相关产品推荐
相关产品推荐

