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

Python如何录入多学生多份成绩并统计各学生的平均分数

Python学生成绩统计修改方案

问题说明

原有代码未存储录入的学生成绩,仅在录入完成后输出done,无法完成按学生维度统计成绩数量和平均分的需求,同时原有代码的异常捕获逻辑存在漏洞:输入非法内容后第二次输入未做校验,连续两次输入非数字会直接抛出异常退出。

完整修改后代码

# 存储所有学生成绩,索引对应学生序号(学生从1开始计数)
all_students_scores = []
student_number = 1

while True:
    current_scores = []
    # 循环录入当前学生的成绩
    while True:
        try:
            score = int(input(f"请输入学生{student_number}的成绩(输入-1结束当前学生录入):"))
        except ValueError:
            print("输入的成绩不是有效数字,请重新输入。")
            continue
        if score == -1:
            break
        # 成绩合法且不是结束标志,存入当前学生成绩列表
        current_scores.append(score)
    # 把当前学生的成绩存入总列表
    all_students_scores.append(current_scores)
    # 询问是否还有下一个学生
    more_student = input("是否还有其他学生?(是/否):")
    if more_student != "是":
        break
    student_number += 1

# 输出统计结果
for idx, scores in enumerate(all_students_scores, start=1):
    count = len(scores)
    avg = sum(scores)/count if count != 0 else 0
    print(f"学生{idx}共有{count}个成绩,平均分为{avg:.2f}。")

修改说明

  • 新增all_students_scores列表存储所有学生的成绩,每个学生的成绩单独存为一个子列表
  • 优化了异常捕获逻辑,只要输入非数字就会循环提示重新输入,不会出现连续输错直接崩溃的问题
  • 去掉了重复的代码逻辑,用嵌套循环简化了录入流程
  • 最后新增统计逻辑,遍历所有学生的成绩,计算数量和平均分后按要求输出
  • 所有交互提示已翻译为中文,符合使用需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:42:03