I need help on Part of the whole


#1

What is wrong with my code?

from math import *

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=0
total= float(sum(numbers))
return total/len(numbers)
def get_average(student):
homework = average(student["homework"])
quizzes = average(student["quizzes"])
tests = average(student["tests"])
return 0.1 * average(student["homework"]) + \
0.3 * average(student["quizzes"]) + \
0.6 * average(student["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"

classlist = [lloyd, alice, tyler]
def get_class_average(students):
results = []
for student in students :
results.append(get_average(student))
return average(results)


#2

It lacks indentation. I realize that may only be the case in your post and not in your actual code, but if that's the case then you should post your actual code, don't make us guess.

Also, no clue what to look for. Describe how it acts differently from what you want. While you're at it, you might consider which part of your code could be responsible for that behaviour, perhaps you'll solve it yourself. Remember that you can put print statements in your code to follow along as it executes.