# 8.part of whole (help me pls)

#1

8.part of whole (help me pls)

display all the time: Oops, try again. get_class_average([alice]) resulted in an error: list indices must be integers, not str

What's wrong with my code?

``````Replace this line with your code.

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

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

if score >= 90.0:
return "A"
elif score >= 80.0:
return "B"
elif score >= 70.0:
return "C"
elif score >= 60.0:
return "D"
else:
return "F"

def get_class_average(students):
results = []
for student in students:
get_average(students)
results.append(average)
return average(results)``````

#2

This function call should have a single `student` dictionary in the argument, not the `students` list.

#3

This suggestion isn't correct. What you're being asked to do is append each student's combined weighted results, and then return the average of the value in the results list once appending to the list has been completed.

``````def get_class_average(students):
results=[]
for student in students:
results.append(get_average(student))
return average(results)``````

#5

One issue at a time. Let the learner craft their own solution from our hints, one mistake at a time. We still have no acknowledgement of the first concern.

#6

thank you so much, I got it, and I forgot to create the list students with the names.

#7

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