# How is Everybody Doing?

#1

I believe that the code is correct and the output it gives is correct, but an error message keeps on popping up saying: "Oops, try again. One of the following is missing or broken when we tried to use it: alice, lloyd, tyler, students, get_class_average, get_letter_grade"

Replace this line with your 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 = sum(numbers)
total = float(total)
result = total/len(numbers)
return result

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

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

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

average = get_class_average([lloyd, alice, tyler])
print average

#2

You have a function called average but you then give average a new value in this line:

average = get_class_average([lloyd, alice, tyler])

So, average has the correct value (for the question) as it has run through once but now average no longer points to the function.

If you was to try call get_class_average() again it will fail at the point it tries to call average().

Change your last line to the following and look what is printed out:

print average
average = get_class_average([lloyd, alice, tyler])
print average

See how average changes from pointing to function average at (a memory address) to 83.8666666667.

With that in mind, it should now be easy for you to fix your code now.

#3

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