Part of the Whole


#1



https://www.codecademy.com/courses/python-beginner-en-qzsCL/1/4?curriculum_id=4f89dab3d788890003000096

Oops, try again. get_class_average([alice, lloyd]) returned 91.15 instead of 85.85 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]
}

# Add your function below!
def average(numbers):
    total = sum(numbers)
    total = float(total) / len(numbers)
    return total
    
def get_average(student):
    homework = average(student["homework"])
    quizzes = average(student["quizzes"])
    tests = average(student["tests"])
    sum_total = 0.1*homework + 0.3*quizzes + 0.6*tests
    return sum_total
    
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:
        return get_average(student)
        return results.append(get_average(student))
        return average(results)

What's wrong with the code ?


#2

When you use the return function in a particular block of code, it ends that block there.

In this block,

you could remove the first line of return, since it is repeated. In the second line, you also do not need to return that line since it is simply appending to results.

What you need returned, is the last and your indentation is off. You need to return the entire for loop.

Kindly consider the below

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

#3

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