# Part of Whole issues (couldn't find answer in other posts)

#1

Error --- get_class_average([alice, lloyd]) returned 91.15 instead of 85.85 as expected

I've checked the average of each student and they come out correctly, so I'm not sure why it's returning alice's average as the answer to the average of alice + lloyd. Both Alice and Lloyd get_average is accurate.

``````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))
total = total / len(numbers)

def get_average(student):
homeworkav = average(student["homework"])
quizzesav = average(student["quizzes"])
testsav = average(student["tests"])
return .10 * homeworkav + .30 * quizzesav + .60 * testsav

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

#the following is for testing purposes
#print get_average(lloyd)
#print get_average(alice)
#print get_average(tyler)
#av = get_average(lloyd) + get_average(alice)
#print av

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

Thank you, very much, for your time and assistance.

#2

Indentation is off, so that you only return the first average.

#3

Dammit...I thought I checked my indents. I do love that python is very whitespace strict, so it's embarrassing that I got caught messing it up.

Thank you, so much, for your help.

#4

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