Part of the whole (get_class_average:83.8666666667)


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


def get_class_average(students):
    results = []
    students = [lloyd,alice,tyler]
    for student in students:
        results.append(get_average(student))
    print results
    return average(results)
"""
Oops, try again. get_class_average([alice]) returned 83.8666666667 instead of 91.15 as expected
"""

what's error?


#2

total = float(sum(numbers))/len(numbers)

total = float(sum(numbers)/len(numbers))


#4

Same error i too getting.i am struked.


#5

def get_class_average(students):
    results = []
    students = [lloyd,alice,tyler]

On the line 3, why are you reassigning the students list to your own list? That way, you are losing the value for the students list passed as an argument on line 1.

So, remove line 3.


#6

No this is wrong both in mathematical way and in the way that it doesn't help solve the problem.


#8

Cheers, that one's been burning my ■■■ for a while.


#9

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

this should work. remove the student = [lloyd, alice, tyler] line because it messes up the definition of student, you also don't need to print the results, just return them
make sue you put the return statement outside of the for loop like you did


#10

oops, i am wrong you DO need to print the results