8/9 Incorrect value for [alice] in get_class_average


#1

"Oops, try again. get_class_average([alice, lloyd]) returned 91.15 instead of 85.85 as expected"
This isn't a syntax error... It's returning an incorrect calculation. The values in my dictionaries match the original values, and my code seems to match other code posted in the forum.
Any suggestions?

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

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

#2

DISREGARD DISREGARD

I debugged it by moving the return statement outside the for-loop.

Thx!


#3

Thanks for posting your fix. I had this same issue and I spent over an hour on it before finding this!


#4

I had this same issue. However, Thank you for your input @ferretey.. It helped.
However, I would like to post the final output of the def get_class_average(students): so that others can see it. Thanks for the help.

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