Wrong number is returned on "Part of a whole"


#1



Hi everyone. I'm experiancing a problem on the exercise "11. Student becomes the teacher - Part of a whole"

Link to exercise.
https://www.codecademy.com/courses/python-beginner-en-qzsCL/1/4?curriculum_id=4f89dab3d788890003000096


I get the error:
get_class_average([alice]) returned 83.8666666667 instead of 91.15 as expected

Not quite sure what's causing the bug. Please help. Here's my 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]
}

# Add your function below!
def average(numbers):
    total = sum(numbers)
    total = float(total)
    return total / len(numbers)
    
def get_average(student):
    homework = average(student["homework"]) * 0.1
    quizzes = average(student["quizzes"]) * 0.3
    tests = average(student["tests"]) * 0.6
    return homework + quizzes + 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"

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


#2

I'll tell you how I found out what your error was. In the function that you're writing in this part get_class_average, you get a list of students, then you completely dismiss that list, and then you loop trough your own list of students. Try using the list that you got as an input to the function instead :slight_smile: