【发布时间】:2016-05-25 00:28:42
【问题描述】:
这是一个列表
[74.0, 96.0, 72.0, 88.0, ['71', '80', '83', '77', '90', '88', '95', '71', '76', '94'], 80.0, 74.0, 98.0, 77.0]
74以权重0.1计算,96以权重0.1计算,72以权重0.15计算,88以权重0.05计算,(71,80,83,77,90,88,95的平均值,71,76,94) 以 0.3 的重量计算,80 以 0.08 的重量计算,74 以 0.08 的重量计算,98 以 0.09 计算,最后 77 以 0.05 计算。每个分数都应乘以适当的权重。
这里是函数
def weighted_total_score(student_scores):
return((int(student_scores[0])*.1)+(int(student_scores[1])*.1)+(int(student_scores[2])*.15)+(int(student_scores[3])*.05)+(int(student_scores[4][0])*.3)+(int(student_scores[5])*.08)+(int(student_scores[5])*.08)+(int(student_scores[5])*.09)+(int(student_scores[8])*.05))
预期值应该是 82.94,但我得到的是 78.48
【问题讨论】:
-
有什么理由跳过
student_scores[5]? -
您的列表中有一个子列表。这可能是这里的问题。至少从似乎是这样的错误消息来看。
-
另外,在修复第一个错误后,您会收到一个索引错误。你没有有
student_scores[9]。 -
您的预期输出是什么?另外,为什么将整数和列表混合在一起?这似乎是灾难的秘诀
-
您可能想要概括您的函数,以便它可以使用不同于您硬编码的权重的权重。