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

如何限制统计数值范围:仅计算1-5分的成绩平均分

问题分析与修正代码

需求:仅统计1-5分的课程成绩来计算平均分,输入0或6及以上时不将该数值纳入统计,输入-1则退出程序。

原代码存在以下问题:

  • 无效成绩(0、≥6)甚至退出指令-1会被错误计入总分和计数
  • 当没有有效成绩时,访问average变量会引发未定义错误
  • 重复的提示信息可合并优化

修正后的代码如下:

count = 0
total = 0

while True:
    grade = int(input("Give a course grade (-1 exits): "))
    if grade == -1:
        break
    if not (1 <= grade <= 5):
        print("Grades must be between 1 and 5 (-1 exits)")
        continue  # 跳过无效成绩的统计步骤
    total += grade
    count += 1

# 计算并输出结果
if count > 0:
    average = round(total / count, 1)
    print(f"Average of course grades is: {average}")
else:
    print("No valid grades were entered.")

关键优化说明:

  • 用while True替代原循环条件,逻辑更清晰,避免初始值带来的潜在问题
  • 合并无效成绩的判断逻辑,通过continue直接跳过无效成绩的统计流程
  • 增加无有效成绩时的提示分支,避免变量未定义的报错
  • 使用f-string格式化输出,代码更简洁易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:05:31