2013-09-28 5 views
0

Я работаю над этой проблемой в Академии Кодекса, и то, что я хочу сделать, это вернуть тесты, викторины и домашние задания для каждого учащегося отдельно.Codeacademy: Средние значения

Это то, что у меня есть для кода прямо сейчас.

В нем указано это сообщение об ошибке «недопустимый синтаксис» и многое другое.

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) 
+0

traceback сообщает номера строк –

+0

-1 из-за отсутствия усилий. –

ответ

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, который вы опустили, но если вы имеете в виду среднее значение, то у вас есть проблема.

2

Вы звоните get_average() (я предполагаю, что вы имеете в виду average() здесь) со словарем, а не списком. Таким образом, sum() не будет работать с ним. Чтобы получить реальную домашнюю работу или викторину или тестовый список, вы должны сделать total += get_average(student['homework']).

Вам также не хватает } после вашего словаря tyler. Это заставляет python думать, что бит def average является частью словаря, но это не может быть, следовательно, ошибка.

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) 
0

Вы забыли закрыть свои фигурные скобки перед функцией average.

Смежные вопросы