Python学生成绩平均值计算程序调试求助:总和计算异常
修正后的学生成绩平均值计算代码
问题分析
原代码的核心错误点:
- 第一个输入的成绩未进入判断逻辑,直接被后续循环的输入覆盖,导致数据丢失
- 成绩累加的时机或循环输入顺序错误,导致总和统计偏差
以下是修正后的Python代码,完全满足需求:
total = 0 count = 0 while True: score = int(input("请输入成绩(输入-1结束):")) # 输入-1时直接终止程序 if score == -1: break # 验证成绩是否在有效范围 if 0 <= score <= 100: total += score count += 1 else: print("输入无效,请输入0-100之间的成绩或-1结束") # 计算并输出结果 if count > 0: average = total / count print(f"有效成绩总和:{total},平均值:{average:.2f}") else: print("未输入任何有效成绩")
代码说明
- 用
while True实现先输入再判断的逻辑,确保每一次输入都被处理,不会丢失第一个成绩 - 优先判断输入是否为
-1,满足条件直接退出循环 - 仅对0-100之间的有效成绩进行累加和计数,无效成绩给出提示但不统计
- 最后根据有效成绩数量判断是否计算平均值,避免出现除以0的错误
测试示例
输入:90、80、75、-1
输出:
请输入成绩(输入-1结束):90 请输入成绩(输入-1结束):80 请输入成绩(输入-1结束):75 请输入成绩(输入-1结束):-1 有效成绩总和:245,平均值:81.67
输入:-1
输出:
请输入成绩(输入-1结束):-1 未输入任何有效成绩
输入:105、95、-1
输出:
请输入成绩(输入-1结束):105 输入无效,请输入0-100之间的成绩或-1结束 请输入成绩(输入-1结束):95 请输入成绩(输入-1结束):-1 有效成绩总和:95,平均值:95.00
内容的提问来源于stack exchange,提问作者xchangecode
相关产品推荐
相关产品推荐

