如何累加输入的学生分数后除以计数得到平均值(Python实现问题)
计算班级测验平均分的代码调整方案
现有代码问题
原代码无法实现分数累加的核心原因是:
- 存储分数的变量被定义在收集成绩的for循环内部,每次循环都会被重置,结束后仅保留最后一名学生的成绩
- 变量初始值被设为空字符串,不符合数值累加的类型要求
调整后可运行代码
print('Lets get a class average of yesterdays quiz.') students=['Mary','Edith','Sybil','Matthew','Tom'] # 初始化总分累加变量,放在循环外避免被重置 total_score = 0 for student in students: print(student,'What was your score?') current_score = int(input('My score was a ')) total_score += current_score print('Great.') # 保留原需求要求的单独for循环统计学生人数 count=0 for itervar in ['Mary','Edith','Sybil','Matthew','Tom']: count=count+1 print('Number of scores:',count) # 计算并输出平均分 average = total_score / count print(f'班级测验平均分为:{average:.2f}')
关键修改说明
- 将总分累加变量
total_score移到第一个for循环外部,初始值设为数值0,避免每次循环被重置 - 每次收集到学生输入的成绩后,直接累加到
total_score变量中 - 统计完学生总人数后,用总分除以总人数得到平均分,示例中保留2位小数展示结果
内容的提问来源于stack exchange,提问作者Kayla
相关产品推荐
相关产品推荐

