有人能帮我理解下面的代码吗,这是关于字典的
为什么在添加最后一行之前for循环运行良好:
elif student_scores[score] <= 70:
student_grades = student_scores[score]="Failed
我甚至尝试使用“else”条件,但结果是一样的:"Failed"
如果删除最后一部分,则结果与预期一致:
{'Harry': 'Exceeds Expectations', 'Ron': 'Acceptable', 'Hermione': 'Outstanding', 'Draco': 'Acceptable', 'Neville': 62}
为什么它只给我最后一个条件的键值,而删除所有其他条件
代码:
student_scores = {
"Harry": 81,
"Ron": 78,
"Hermione": 99,
"Draco": 74,
"Neville": 62,
}
student_grades = {}
for score in student_scores:
student_grades = student_scores
if student_scores[score] >= 91:
student_grades = student_scores[score]="Outstanding"
elif student_scores[score] >= 81:
student_grades = student_scores[score]="Exceeds Expectations"
elif student_scores[score] >= 71:
student_grades = student_scores[score]="Acceptable"
elif student_scores[score] <= 70:
student_grades = student_scores[score]="Failed"
print(student_grades)
结果:失败
我非常感谢你的帮助
多谢各位
实际上,您正在用分数替换student_grades字典中的分数。如果您将最后一条语句更改为“打印学生成绩”,您将看到以下内容。要将项目添加到student_分数词典,必须使用“append”修饰符
将if语句后的每个语句更改为类似以下内容: 学生成绩[“姓名”]。附加[“学生姓名”] 学生成绩[“分数”]。附加[“超出预期”] 这将为每个学生的学生分数字典添加元素
在
if
或elif
语句之后的每行开头不需要student_grades =
。只要有student_scores[score]="Outstanding"
之类的东西就行了此外,迭代变量
score
也有误导性。如果你在任何时候把它打印出来,你会看到这是学生的名字,而不是他们的分数这是因为你刚刚得到学生成绩的最后一个值
您的
print(student_grades)
在for循环之外,因此只需获取存储在学生成绩上的最后一个值。我建议你做这样的改变相关问题 更多 >
编程相关推荐