Get_class_average([alice]) resulted in an error


#1

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]
}
class_list = [lloyd, alice, tyler]

Add your function below!

def average(numbers):
total = sum(numbers)
total = float(total)
total = total/len(numbers)
return total
def get_average (student):
homework = average(student["homework"])
quizzes = average(student["quizzes"])
tests = average(student["tests"])
homework = homework * 0.1
quizzes = quizzes * 0.3
tests = 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 students in class_list:
results.append(get_average(students))
return average(results)

Oops, try again. get_class_average([alice]) resulted in an error: global name 'student' is not defined


Part of a Whole
#2

This global variable that stores all the dictionary was suposed to be called students and not,

that way here,

you would iterate through all the dictionaries just by saying,

for student in students: #This way is also better for readability

and in doing so that would mean this line would have to be modified,

to,

results.append(get_average(student))

All in all if you get the indentation correct,

for x in example:
    example.append(something)
return something(example)

it should work. :grin:


#3

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