# Part of the Whole 8/9

#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’])*0.1
quizzes = average(student[‘quizzes’])*0.3
tests = average(student[‘tests’])*0.6
total_average = homework+quizzes+tests

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_average(alice)

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

print get_average(alice) shows 91.5
The error message I receive is : “get_class_average([alice]) returned 80.55 instead of 91.15 as expected”

I’m not sure how to move on.
Thank you

#2

You could copy the function call it mentions, add it to your code, and add print statements in your function(s) to follow along in what happens to reach that result. (And a good start would be to verify that this is indeed the result that your function produces, so that you know you’re not chasing something that isn’t there)

#3

thank you so much for your response. I will try that. I can’t seem to maintain the formatting.

#4

had the same problem…figured it out…it’s an indentation problem, we always face on the the result’s average

#5

Ya I finally figured it out too. I typed in ‘’’ then saw the link that
inputs the ‘’’ ‘’’. Duh.
Thanks so much for the response.
Coco

#6

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