# Part of the whole

#1

Oops, try again. get_class_average([lloyd]) returned 85.85 instead of 80.55 as expected.

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

def get_average(student):
homework = average(student['homework'])
quizzes = average(student['quizzes'])
tests = average(student['tests'])
homework1 = homework*0.1
quizzes1 = quizzes*0.3
tests1 = tests*0.6
return homework1+quizzes1+tests1

if(score>=90):
return 'A'
elif(score>=80):
return 'B'
elif(score>=70):
return 'C'
elif(score>=60):
return 'D'
else:
return 'F'

results = []

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

``Replace this line with your code.``

#2

Are you asking about how to debug that? (You've posted code and an error message, no explanation)

Your error message describes some input and says your output isn't what it expected.

I suggest manually checking the result and then comparing what you did manually to what your program does for that input. You can use print statements to find out what your program is doing.

Also, note that code is really sensitive to even very small changes, so it's important that code is completely intact when you store/share it. (Copying and running the code you posted will probably not do the same thing as what you're seeing on your end due to formatting issues)

#3

Thank You. I'll look into it and run it manually

#5

Place the empty list (results=[]) inside the function and try again, it worked for me...

#6

Thank you. It worked!!!!

#7

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