# Sending a letter

#1

Hi there,

For some reason this code gets accepted, however it does not give the correct letters. For instance for Lloyd it get's an weighted average of 80.50 but he get's an "A" any way. Even though this is privilaged to people of 90% and up.

Does anybody know what I'm doing wrong?

Thanks, Sjors

``````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)
average = float(total)/len(numbers)
return average

def get_average(student):
homework=average(student["homework"])
quizzes=average(student["quizzes"])
tests=average(student["tests"])
return homework*0.10+quizzes*0.30+tests*0.60

if get_average >= 90:
return "A"
elif get_average >= 80:
return "B"
elif get_average >= 70:
return "C"
elif get_average >= 60:
return "D"
else:
return "F"

print get_average(lloyd)

#2

here:

``print get_letter_grade(lloyd)``

get letter grade expects a number (integer/float) as input, you supply a dictionary.

you will first need to calculate lloyd average grade (use get_average), then supply the average as argument

#3

Thanks amigo! That was the correct tip. However it leaves me with an additional question:

Why in the print statement it is with regular brackets?

And in the weighted average function the is with squared brackets?
homework=average(student["homework"])

Both syntaxis have a function with a variable (lloyd or homework)?
In other words, after your tips I iniatially corrected the print statement as:

But this was not correct.

#4

all the parentheses used here are function calls (average, get_average and get_letter_grade)

square brackets are used to retrieve a value from a dictionary (lloyd) using a key (`"homework"`)

#5

I got it, thanks again! Awesome respond speed btw

#6