Again 8.part of the whole


#1

Hi, before writing this post I went through all the previous ones about the same issue, but still i didn't figure out what did I write wrong.

The exercise where I'm stucked is the number 8.Part of the whole

When it comes to write the function to get the class average it just doesn't work.

The error message I got is : "
Oops, try again. get_class_average([alice]) resulted in an error: global name 'student' is not defined"

Thanks in advance

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!
students = [lloyd, alice, tyler]

def average (numbers):
    total = sum(numbers)
    total = float(total)
    avg = total/len(numbers)
    return avg
    

def get_average(lloyd):
    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(lloyd)

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

#2

the problem is actually here:

def get_average(lloyd):

you use lloyd as function parameter, this should be student


#3

the parameter that I wrote it is student, I think you got confused with the line above that print get_letter_grade(lloyd)


#4

I see that now, thank you