Part of the Whole


#1

See title.

Oops, try again. get_class_average([alice]) resulted in an error: global name 'student' is not defined.


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]
}

class_list = [lloyd, alice, tyler]
# Add your function below!
def average(numbers):
    total = sum(numbers)
    total = float(total)
    total /= 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 = []
    for i in class_list:
        results.append(get_average(student))
    return average(results)


#2

here:

class_list = [lloyd, alice, tyler]

class_list should be named students, like you named in an earlier exercise, otherwise you get in trouble in the next exercise

Just curious, where do you think you defined student? So i can correct where you are going wrong

now you have to change your for loop, this change also means you know loop over your function parameter of get_class_average function, this means you can know calculate the class average for a class of any size (1, 2 or 3 students)


#3

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