Sending a Letter


#1



It seems my code is not correct on the last line, please help.

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


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

please post your code on the forum so we can help you


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

Add your function below!

def average(numbers):
total = sum(numbers)
total = float(total)/ len(numbers)
return total

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

def get_letter_grade(score):
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"

print get_letter_grade(get_average(lloyd))


#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