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

如何修改Python成绩簿计算器代码实现录入任意数量成绩后提前计算平均分

问题根因
  • 原有代码预先固定了需要录入的成绩总数,基于range的循环会强制执行完预设的次数,就算中途输入-1也不会终止录入流程
  • 输入的内容会被直接转为float存入成绩数组,-1会被识别为普通成绩计入统计,无法触发终止逻辑
改造后可运行代码
if __name__ == '__main__':
    print("===== 成绩簿计算器 =====")
    print("提示:录入成绩过程中输入-1即可终止录入,直接计算平均分")
    gradearray = []
    while True:
        input_content = input("请输入成绩:")
        # 优先判断是否为终止信号
        if input_content == '-1':
            break
        # 转成浮点型成绩,做格式校验
        try:
            grade = float(input_content)
        except ValueError:
            print("输入格式有误,请输入数字成绩或-1终止")
            continue
        # 成绩合理性校验
        if grade < 0 or grade > 100:
            print("成绩需在0-100区间内,请重新输入")
            continue
        gradearray.append(grade)
        # 成绩等级判定
        if grade > 90:
            print("你获得了 A!")
        elif grade > 80:
            print("你获得了 B!")
        elif grade > 70:
            print("你获得了 C!")
        elif grade > 60:
            print("你获得了 D!")
        else:
            print("你获得了 F")
    # 平均分计算前先判断是否有有效成绩,避免除零报错
    if len(gradearray) == 0:
        print("未录入有效成绩,无法计算平均分")
    else:
        average = sum(gradearray) / len(gradearray)
        print(f"录入的有效成绩共{len(gradearray)}个,平均分为:{average:.2f}")
功能说明
  • 无需提前设置录入成绩总数,支持任意数量成绩录入
  • 输入-1即可随时终止录入流程,触发平均分计算
  • 新增了输入格式校验、成绩区间校验逻辑,避免异常输入导致程序崩溃
  • 完全保留原有成绩等级判定功能,使用逻辑和原有版本一致

内容的提问来源于stack exchange,提问作者reagent -52

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:06:07