Get_class_average([lloy]( returned 85.85 instead of 80.55 as expected


get_class_average([lloy]( returned 85.85 instead of 80.55 as expected.

I expected the task to complete.

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):
    return total
def get_average(student):
    return tests*0.6+quizzes*0.3+homework*0.1
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"
        return "F"
    print score
results = []
def get_class_average(students):
    for student in students:
    return average(results)


Hello @boardplayer44375,

You only need to return result in the get_class_average() function. Hope this fixes your problem...


Er.. I don't get it. Is that not what I already am doing, here:
return average(results)


No, the task tells me to:
"Finally, return the result of calling average() with results"

"result" variable contains a single number from the student average. Task requires me to return the average of student averages which I think are stored in a list of results.


You are right, @boardplayer44375. But the results list should be defined inside the function. That should definitely make it work!


Holy mother of jesus that worked. Why?
Does program flow skip the step somehow if it's before the function def? Why?


Oh I guess it's because functions have their own tree of variables/lists/dictionaries.