I believe the code is doing what I think it should do, must be a misunderstanding


How Is Everybody doing

Oops, try again. Did you remember to print the average of the class? It looks like "[80.55, 91.14999999999999, 79.9, 80.55, 91.14999999999999, 79.9]" wasn't printed. this is the error, but what printed on the return side is


My understanding was that we were to get one class average, but I tried it both ways getting an average for each student . I even believe these are the right results.

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]
students = [lloyd, alice, tyler]
results = []
def average(n):
    total = sum(n)
    total = float(total)
    result= total/len(n)
    return result
def get_average(student):
    homework = average(student["homework"])
    quizzes = average(student["quizzes"])
    tests = average(student["tests"])
    grade = 0.10*homework + 0.30*quizzes + 0.60*tests
    return grade
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"
        return "F"

def get_class_average(students):
    for student in students:
    return results

student_ave = get_class_average(students)
class_average = average(results)
letter_grade = get_letter_grade(class_average)
print class_average
print letter_grade


your get_class_average doesn't behave as it should


It returns the averages for the 3 students. I thought that was what it was supposed to do? Am I also supposed to be averaging the results and return that class average? and then from that get a letter grade?


The name is get_class_average, not get_class_averages

It also has the problem that calling it affects its future results. Go back to the previous exercise, pretty sure it doesn't pass your current code


It worked fine after I returned one class average for the individual students instead of the individual student averages. then I called the the funciton for getting the letter grade. Thanks for the hint.


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