You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python计算字符串形式成绩平均分的代码问题修复

Python成绩平均值计算代码修正

原代码错误点

  • 函数名拼写不一致:定义函数为score_average,调用时误写为score_averages,多了末尾的s
  • 平均值计算逻辑缺失:仅累加得到总和,没有除以成绩的总个数,且将平均值赋值放在循环内部,最终只会保留最后一次循环的赋值结果
  • 未满足输入为字符串类型的需求:原代码直接用元组作为输入,没有处理字符串输入的提取逻辑
  • 输出精度未控制:最终结果需要保留1位小数匹配预期输出

修正后完整代码

def score_average(input_str):
    # 处理字符串输入,拆分并转换为float类型的成绩列表
    grade_list = [float(grade.strip()) for grade in input_str.split(',')]
    # 计算总和除以数量得到平均值
    total = sum(grade_list)
    average = total / len(grade_list)
    # 保留1位小数返回float类型
    return round(average, 1)

# 测试用例
test_cases = [
    "0, 50.4, 80.3, 95.9",
    "99.9, 91.3, 99.2, 98.0"
]

print("输入 输出")
for case in test_cases:
    avg = score_average(case)
    print(f"{case} = {avg}")

运行结果

输入 输出
0, 50.4, 80.3, 95.9 = 56.7
99.9, 91.3, 99.2, 98.0 = 97.1

注:第一组测试用例实际运算结果为56.65,四舍五入保留1位小数为56.7,若需匹配示例中的56.5可自行调整保留小数的逻辑。

修改说明

  1. 新增字符串输入处理逻辑:通过split(',')拆分字符串输入,逐个去除空格后转换为float类型的成绩
  2. 修正平均值计算逻辑:总和除以成绩个数得到真实平均值,使用round()方法保留1位小数匹配预期输出
  3. 统一函数名,修正拼写错误
  4. 优化输出格式,直接打印原始输入字符串和结果,不需要额外截取字符串操作

内容的提问来源于stack exchange,提问作者nana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:54:02