# Part of the whole (get_class_average:83.8666666667)

#1
``````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(numbers):
total = float(sum(numbers))/len(numbers)

def get_average(student):
homework = average(student["homework"])
quizzes = average(student["quizzes"])
tests = average(student["tests"])
return (homework * 0.1) + (quizzes * 0.3) + (tests * 0.6)

if score >= 90:
return "A"
elif score >= 80:
return "B"
elif score >= 70:
return "C"
elif score >= 60:
return "D"
else:
return "F"

def get_class_average(students):
results = []
students = [lloyd,alice,tyler]
for student in students:
results.append(get_average(student))
print results
return average(results)
"""
Oops, try again. get_class_average([alice]) returned 83.8666666667 instead of 91.15 as expected
"""``````

what's error?

#2

total = float(sum(numbers))/len(numbers)

total = float(sum(numbers)/len(numbers))

#4

Same error i too getting.i am struked.

#5

``````def get_class_average(students):
results = []
students = [lloyd,alice,tyler]``````

On the line 3, why are you reassigning the `students` list to your own list? That way, you are losing the value for the `students` list passed as an argument on line 1.

So, remove line 3.

#6

No this is wrong both in mathematical way and in the way that it doesn't help solve the problem.

#8

Cheers, that one's been burning my ■■■ for a while.

#9

def get_class_average(students):
results = []
for student in students:
results.append(get_average(student))
return average(results)

this should work. remove the student = [lloyd, alice, tyler] line because it messes up the definition of student, you also don't need to print the results, just return them
make sue you put the return statement outside of the for loop like you did

#10

oops, i am wrong you DO need to print the results