【发布时间】:2015-03-01 08:15:16
【问题描述】:
我有一本字典
alice = {
"name": "Alice",
"homework": [100.0, 92.0, 98.0, 100.0],
"quizzes": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
}
和一个取列表平均值的函数
def average(numbers):
return float(sum(numbers))/len(numbers)
我想要 python 函数 get_average() 来读取字典。之后,我希望函数取字典中列表的平均值并将该列表的平均值乘以特定数字(家庭作业的评分权重为 0.10,测验为 .30,测试为 .60)并给出加权作业、测验和测试的总和。我正在使用 if 语句来检查从字典中的 for 循环中选择的列表是否是作业、测验或测试。
def get_average(alice):
hw=0
qz=0
ts=0
for assignment in student:
if assignment== ["homework"]:
hw=average(assignment)*.10
if assignment==["quizzes"]:
qz=average(assignment)*.30
if assignment==["tests"]:
ts=average(assignment)*.60
return hw+qz+ts
这只会返回零。应该是 91.15
【问题讨论】:
标签: python if-statement for-loop dictionary