分配
sum_extra
给定列表
test_grades
收到的额外学分总额。满分是 100 分,所以超过 100 分都是额外分。对于给定程序,
sum_extra
是 8,因为 1 + 0 + 7 + 0 是 8。给定程序的示例输出:
额外总和:8
请原谅我,我是编码新手,而且真的很糟糕! 这是我的代码(不起作用)请帮忙!:
test_grades = [101, 83, 107, 90]
sum_extra = -999 # Initialize 0 before your loop
while test_grades > 100:
test_grades = test_grades - 100
sum_extra = test_grades[0:3]
for test_grades[0:3] > 100:
test_grades = test_grades - 100
sum_extra= test_grade[0] + test_grades[1] + test_grades[2] + test_grades[3]
print('Sum extra:', sum_extra)
我的两个循环中哪一个更适合这个问题,我如何编辑它们以使它们变得更好?因为我知道他们不会起作用!需要任何帮助!谢谢你! :)
走在正确的道路上,尤其是使用循环的想法!但是的代码中有一些误解。让我们分解一下如何修复它:
了解问题
我们的目标是遍历
test_grades
列表中的每个成绩,如果成绩高于 100,则仅添加超出 100 的部分。
代码修复
test_grades = [101, 83, 107, 90]
sum_extra = 0 # 从 0 开始;我们将在此处添加额外内容
# 遍历每个成绩
for grade in test_grades:
# 检查成绩是否超过 100
if grade > 100:
# 计算额外信用并添加到 sum_extra
sum_extra += (grade - 100)
print('Sum extra:', sum_extra)
解释
- 初始化:
-
我们从
sum_extra = 0
开始。这至关重要,因为它为我们提供了一个起点来累加额外信用。 -
循环遍历成绩:
-
for grade in test_grades:
创建了一个循环,该循环一次从test_grades
列表中获取一个成绩,并将该成绩分配给变量grade
。 -
检查额外信用:
-
在循环内,
if grade > 100:
检查当前grade
是否大于 100。 -
计算和添加额外信用:
-
如果
grade
大于 100,sum_extra += (grade - 100)
会计算超出 100 的部分,并将其添加到当前sum_extra
中。 -
打印结果:
-
循环完成后,
print('Sum extra:', sum_extra)
将显示总的额外信用。
为什么的原始代码不起作用
- While 循环不适合: While 循环适合于在满足特定条件时重复代码块。在这种情况下,需要遍历列表中的每个项目,这使得 for 循环更合适。
-
列表比较:
尝试比较
test_grades
(一个列表)和 100。这没有意义。需要逐个比较列表中的每个成绩。 -
列表切片分配:
行
sum_extra = test_grades[0:3]
试图将成绩列表的一部分分配给sum_extra
,而不是添加额外学分。
主要收获
- For 循环: 当需要处理序列(如列表)中的每个项目时,for 循环非常有用。
-
条件语句:
if
语句帮助根据特定条件执行代码。 - 累加: 逐步添加值(如计算总和时)是一种常见的编程模式。
如果是编码新手,我建议使用一些在线 Python 教程和练习。有大量资源可以帮助入门,并磨练的编码技能。玩得开心学习!
标签:python From: 40231917