8. Part of the Whole Alice is not average!


#1

Hi all,

I'm a rookie to Python so I'm a little lost. My code is returning the error:
Oops, try again. get_class_average([alice]) returned 79.9 instead of 91.15 as expected
I've looked at the other threads for similar issues and none of them seem to help, Either my code already matches the recommendation or is entirely different.

If some could tell me how to fix it and explain the solution I would be very grateful.

Here's my code so far:

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"
    
def get_class_average(students):
        results = []
        for students in students:
            results.append(get_average(student))
        return average(results)

#2

try : for student in student*s*


#3

you need to drop the S from "for studentS in students

should look like

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