Alice error in Part of the Whole


#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]
}

Add your function below!

def average(numbers):
total = sum(numbers)
total = float(total)
total = total / len(numbers)
return total

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

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

print get_letter_grade(get_average(lloyd))

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

My problem comes from an incorrect average for alice. can anyone help? I've tried looking at the other posts on the point but am not seeing anything.


#2

There are not very many operations that need to be performed to compute the average of Alice's score, you can do it manually, which means that if you add prints to your code so that it prints out what it does step by step, then you can check where it goes wrong.

Also, your get_class_average ignores the list of students given to it, and uses something it defines itself. If it's not going to use its parameter, then it shouldn't have any.


#3

specifically, this is the error message I get:
Oops, try again. get_class_average([alice]) returned 83.8666666667 instead of 91.15 as expected