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

如何用Python计算学生及科目平均分?现有代码仅支持学生平均分

如何同时计算学生和科目平均分?

你的代码只保存了学生的个人平均分,没有保留每门科目的原始分数,所以没法统计科目平均分。下面是修改后的代码,既能计算学生平均分,也能算出每门科目的平均分:

# 存储学生的姓名和各科分数
students = []
# 初始化4门科目的总分累加器
subject_totals = [0, 0, 0, 0]
student_count = 3

for i in range(student_count):
    name = input(f"输入第{i+1}个学生的姓名: ")
    test1 = int(input(f"输入{name}的测试1分数: "))
    test2 = int(input(f"输入{name}的测试2分数: "))
    test3 = int(input(f"输入{name}的测试3分数: "))
    test4 = int(input(f"输入{name}的测试4分数: "))
    
    # 保存学生姓名和所有科目分数
    students.append((name, [test1, test2, test3, test4]))
    # 累加各科总分
    subject_totals[0] += test1
    subject_totals[1] += test2
    subject_totals[2] += test3
    subject_totals[3] += test4

# 输出每个学生的平均分
print("\n学生平均分:")
for name, scores in students:
    avg = sum(scores) / len(scores)
    print(f"{name}: {avg:.2f}")

# 输出每门科目的平均分
print("\n科目平均分:")
subject_names = ["测试1", "测试2", "测试3", "测试4"]
for i in range(len(subject_totals)):
    avg = subject_totals[i] / student_count
    print(f"{subject_names[i]}: {avg:.2f}")

代码说明:

  • 用students列表存储每个学生的姓名和所有科目分数,而非直接存储平均分,这样既可以计算学生个人平均分,也能为科目统计提供原始数据。
  • subject_totals列表用来累加每门科目的总分,在输入学生分数时同步更新这个列表。
  • 最后分别遍历学生数据计算个人平均分,遍历科目总分计算科目平均分。

另外,你的原代码存在几处语法错误:

  • for row in values语句末尾缺少冒号:
  • 多了一行格式错误的print(row)(被反引号包裹的那行)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:15:35