9. How is Everybody Doing?


#1

The error It's returning: Oops, try again. One of the following is missing or broken when we tried to use it: alice, lloyd, tyler, students, get_class_average, get_letter_grade

The code I wrote:-

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 float(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)
    students = [lloyd, alice, tyler]
    print get_class_average(students)
    print get_letter_grade(get_class_average(students))

How do I fix this?
Please Help!


#2

here:

    students = [lloyd, alice, tyler]
    print get_class_average(students)
    print get_letter_grade(get_class_average(students))

the students list should be a global variable, it should be outside the class_average function (hint: indention), same goes for the function calls on the lines below, given the function calls execute the function


#3

I am confused with how we make a student list here. Shouldn't it be students = ['lloyd', 'alice', 'tyler'] instead of students = [lloyd, alice, tyler] because student's names are strings?

When I had quotation on students' names, my code wouldn't work, and it worked when I took the quote out. Why?


#4

because we want to store the dictionaries in the list so we can loop over the list to get access to all dictionaries

yes, inside the dictionaries the names are strings, but that is not what we store in the list


#5

I see. Thank you so much!


#13