0

我正在从 Code Academy 解决这个问题,我希望代码做的是分别返回每个学生的测试、测验和家庭作业的平均值。

这就是我现在的代码。

它说这个错误消息“无效的语法”等等。

lloyd = {
    "name": "Lloyd",
    "homework": [90.0, 97.0, 75.0, 92.0],
    "quizzes": [88.0, 40.0, 94.0],
    "tests": [75.0, 90.0]
}
alice = {
    "name": "Alice",
    "homework": [100.0, 92.0, 98.0, 100.0],
    "quizzes": [82.0, 83.0, 91.0],
    "tests": [89.0, 97.0]
}
tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]

def average(some):
    return sum(some)/len(some)

students = [lloyd, alice, tyler]
def get_class_average(students):
    for student in students:
         total += get_average(student)
    return float(total) / len(students)
4

4 回答 4

2

您正在使用字典而不是列表来调用get_average()(我假设您的意思是这里)。average()所以sum()不会用它。为了获得实际的作业或测验或测试清单,您必须执行total += get_average(student['homework']).

}的泰勒字典后面也少了一个。这将使python认为该def average位是字典的一部分,但它不可能,因此出现错误。

于 2013-09-28T03:12:13.860 回答
1

看来您在

def average...

它应该是

tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
}
def average ...

同样在get_average_class你不说是什么get_average。我认为这是average您省略的用途,但是如果您的意思是平均,那您就有问题了。

于 2013-09-28T03:11:44.030 回答
0
lloyd = {
    "name": "Lloyd",
    "homework": [90.0, 97.0, 75.0, 92.0],
    "quizzes": [88.0, 40.0, 94.0],
    "tests": [75.0, 90.0]
}
alice = {
    "name": "Alice",
    "homework": [100.0, 92.0, 98.0, 100.0],
    "quizzes": [82.0, 83.0, 91.0],
    "tests": [89.0, 97.0]
}
tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
}
def average(some):
    return sum(some)/len(some)

students = [lloyd, alice, tyler]
def get_class_average(students):
    for student in students:
         total += get_average(student)
    return float(total) / len(students)
于 2013-09-28T03:45:08.663 回答
0

average你忘了在函数之前关闭你的大括号。

于 2013-09-28T03:52:51.033 回答