I'm having trouble with Part of the Whole!


#1

Hi guys,

I just can't figure out what I'm doing wrong - my code seems identical to previous posters. Error message: "get_class_average([alice, lloyd]) returned 91.15 instead of 85.85 as expected"

Help Please!!!

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.1 * homework + 0.3 * quizzes + 0.6 * tests

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

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

print get_class_average(students)


#2

I ran your code and it worked fine. Reload the page and see if it works, if it doesn't then there may be an indentation problem but no one can point out any indentation problems because of the way you have presented your code. Double check that you have the right indentations in the right places.
Hope this helps :slightly_smiling:


#3

Yay! It worked this time :smile:

Thanks for your help