# Sending a Letter

#1

This is the error message by Python:
"Traceback (most recent call last):
File "python", line 44, in
File "python", line 32, in get_letter_grade
NameError: global name 'student' is not defined"

It should print the letter in dependance of the value of the score and student.

``Replace this line with your code.``

#2

#3

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)/ len(numbers)

def get_average(student):
total = 0.1*average(student["homework"]) + 0.3*average(student["quizzes"]) + 0.6*average(student["tests"])
print total

score = round(get_average(student))
if score > 90:
return "A"
elif score >80:
return "B"
elif score >70:
return "C"
elif score >60:
return "D"
else:
return "F"

#4

here:

``score = round(get_average(student))``

why do you overwrite function parameter score? You simply should calculate the average here:

``print get_letter_grade(get_average(lloyd))``

no need to use get_average inside your get_letter_grade function, get_letter grade only purpose is to convert a number (which you supply as argument) into a letter grade

#5

Thank you for your help, it worked now.

#6