# Part of the Whole - returned 85.6875 instead of 91.15 as expected

#1

Hi,

This is the error:

Oops, try again. get_class_average([alice]) returned 85.6875 instead of 91.15 as expected

My code:

``````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 = 0
total = sum(numbers)
total = float(total)
total = total / 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"

l = [lloyd,alice,tyler]
results = []

def get_class_average(students):
for item in students:
results.append(get_average(item))
return average(results)

print get_class_average(l)``````

I dont know what is wrong?

Thanks...

#2

So, while what you did with l = [lloyd,alice,tyler] results = [] is possible I believe just an easier way to complete this is by putting your result in the def get_class_average(students) and make your for loop with student. So something to this nature:

``````def get_class_average(students):
results = []
for student in students:``````

#3

Thx a lot, that solve it, yeah is better to have it inside of my function so it can always return the class average with no other data that was loaded before.

#4

You got the idea! The rest of your code looks fine so you should have no problem finishing this all up in the next lesson. Glad to help and happy coding!

#5

Thx again bro... is all good now...

#6

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.