如何使用for循环计算marks列表中的成绩总和 附相关代码问题排查
代码问题排查与正确实现
现有代码存在的问题
- 变量名冲突:初始定义的
s原本是用于存储总和的变量,但for循环中直接将s作为遍历计数器使用,会覆盖初始赋值的0,无法完成累加逻辑 - 无求和逻辑:全程没有读取
marks列表的成绩元素、也没有累加操作,写死的42/d和实际成绩没有任何关联 - 打印位置错误:
print语句放在for循环内部,会重复执行11次,不符合需求
正确实现(for循环求和)
遍历索引写法(和你原代码写法习惯对齐)
marks=[3, 5, 4, 2, 5, 5, 3, 5, 4, 4, 4] d=len(marks) s=0 for i in range(d): s += marks[i] f=s/d print("所有成绩总和:" + str(s)) print("The final grade:" + str(f))
更简洁的直接遍历元素写法
marks=[3, 5, 4, 2, 5, 5, 3, 5, 4, 4, 4] s=0 for score in marks: s += score f=s/len(marks) print("所有成绩总和:" + str(s)) print("The final grade:" + str(f))
运行后得到成绩总和为44,平均成绩约为4.0。
内容的提问来源于stack exchange,提问作者ツMr.Monchツ
相关产品推荐
相关产品推荐

