# Part of the Whole

#1

I'm stuck with Part of the Whole exercise.

File "python", line 20
class = [lloyd, alice, tyler]
^
SyntaxError: invalid syntax

it should calculate the average of the class. I had to create list of students called class in order for it work, but somehow my list is wrong? I mean it's just a list, what is wrong with it???

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

def average(numbers):
total = sum(numbers)
total = float(total)

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

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 student in class:
results.append(get_average(student))
return average(results)

#2

You can see the colour change in text in the code you posted. class is a keyword in Python just like list. It is used to initiate classes (which will be taught later on) so you can't really use that to name lists. Try another name (Don't use student or students as this will cause issues).

You don't have class as a parameter in the function. Do you mean to use students instead? Don't overwrite parameters.

#3

Thank you! I fixed it.

#4

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