How is Everybody Doing? Error Message


#1



https://www.codecademy.com/courses/python-beginner-en-qzsCL/1/5?curriculum_id=4f89dab3d788890003000096


Error Message: 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.

But console says:
83.8666666667
B
None

...which I think is the right answer. Looked through forum, not sure what's wrong with my code.


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"]) * 0.1
    quizzes = average(student["quizzes"]) * 0.3
    tests = average(student["tests"]) * 0.6
    return homework + quizzes + 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 student in students:
        results.append(get_average(student))
    return average(results)

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


#2

You are missing a variable called students that should contain a list of all the dictionaries.


#3

But, even though that might make it easier, that doesn't change the code, does it? Because I just give a list of the people. I don't need to give it a name.


#4

You do for the lesson to pass you. The lesson wants there to be a variable to be called students that contains those things. If it does not exist it will not pass you. The error tells you as such and even tells you why:

Error Message: 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.

Simply put, yes, it does change the code just not the code you wrote. Their code that validates your code will not just run your code, it will import it and use it how it wants to and for right or wrong it wants to use a variable called students that contains a list of those dictionaries without it, their code gets an error, hence the failure.


#5

Tried, worked. Thanks!


#6

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.