11.8. Student Becomes the Teacher: Part of the Whole

Hello everyone! This is my first post here (or anywhere in the programming world, in fact). I have reached an impasse. I have tried many different versions but all keep returning the following error:

File "python", line 54

return average(results)

^

SyntaxError: invalid syntax

I have looked around on here and can't seem to find where I went wrong after comparing to others' code. On Stack Overflow I found "Because of the nature of SyntaxError exceptions (which are raised when the interpreter doesn't understand the code syntax), the error messages may not identify the right line as the source of the problem."

So do I need to look elsewhere (other than line 54)? Help! Thanks!

```
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)
average = total / len(numbers)
return average
def get_average(student):
homework = average(student["homework"])
quizzes = average(student["quizzes"])
tests = average(student["tests"])
get_average = 0.1 * homework + 0.3 * quizzes + 0.6 * tests
return get_average
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"
elif score < 60:
return "F"
print get_letter_grade(get_average(lloyd))
students = [lloyd, alice, tyler]
def get_class_average(students):
results = []
for student in students:
get_average(student)
results.append((get_average(student))
return average(results)
```