8/9 Part of the Whole HELP!


#1



I have no idea what I did wrong. The code, I believe, is correct. but it keeps showing this error message:
get_class_average([alice]) returned 9115.0 instead of 91.15 as expected.

Here is my 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]
}

# Add your function below!
def average(numbers):
    total = sum(numbers)
    total = float(total)
    return total / len(numbers)

def get_average(student):
    homework = average(student["homework"])
    quizzes = average(student["quizzes"])
    tests = average(student["tests"])
    homework = homework * 10
    quizzes = quizzes * 30
    tests = tests * 60
    return tests + quizzes + homework
    

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 = []
    for student in students:
        results.append(get_average(student))
        return average(results)


#2

Never rest on that belief, especially when not getting the results you expect. It's not embarrassing to be wrong, but to believe you are right. That is embarrassment waiting to happen. Always believe you are wrong until proven otherwise.


#3

What I meant was I have seen other people write the exact code and get it right, but I will keep that in mind. I got kind of desperate.


#4

And you will always be desperate if you do not think for yourself. It's one thing to reach for an off the shelf solution which may have bugs we are pressed to resolve, another to start from scratch and hammer out the bugs as we build upon our own ideas.


#5

Your return average(results) shouldn't be in the loop. You're returning the average grade of the students.
Remember parameter 'students' passed in the get_class_average is a list


#7

Thank you for the help! I got it!


#8

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