Just Weight and See: Error


#1


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

:slight_frown:The following error message keeps appearing and I do not know why:

Oops, try again. get_average(alice) raised the following error: local variable 'homework' referenced before assignment


 
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]
}

def average(numbers):
    total = sum(numbers)
    total = float(total)
    result = total / len(numbers)
    return result
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


#2

@code4ever03: You should use "homework" other than homework.
First one is the key used to access a certain "entry" in your dictionary, while the other is just a variable.

student["homework"] #how it should be
student[homework] #how it should not be in this case

#3

@g4be Thank you for your help!


#4

Hi @g4be,

What's does average() do exactly ?
Also where did the values (0.1, 0.3, 0.6) come from ? Does the lesson let us choose them arbitrarly or is there any logic behind choosing these values ?

EDIT : Nevermind for my second question, I didn't read the whole instructions before writing it.
I still would like to understand average() is it : x+y+z divided by number of numerators ?


#5

@netrunner10450: average() is just a function the OP defined because those were the instructions in the lesson.
It will bring back the average of values in a given list of numbers.
The number 0.1, 0.3 and 0.6 were also given to you by the lesson.


#6

Thank you [ : You're right, I didn't read the whole lesson before posting : /

EDIT : Jesus, I forgot that I was the one that created the average function and defined it in the previous lesson.


#9

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