Students variable help


#1



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


help please - I think I've messed up the students variable with student but cant seem to fix it?


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


#3

The troublesome method is:

def get_average(students):
    homework = average(students['homework'])
    quizzes=average(students['quizzes'])
    tests=average(students['tests'])
    
    return 0.1 * average(student['homework']) + 0.3 * average(student['quizzes']) + 0.6 * average(student['tests'])

Two problems:

  1. You are have named the parameter as students when it actually is just one student.
  2. Even when you have found out the homework, quizzes and tests, yet you are again computing the average homework, quiz and test marks in this line:

    return 0.1 * average(student['homework']) + 0.3 * average(student['quizzes']) + 0.6 * average(student['tests'])

    this line can simply be:

    return 0.1 * homeworks + 0.3 * quizzes + 0.6 * tests