Stuck in "How is Everybody Doing?" lesson


#1



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


I'm stuck with this one, it is giving error message:

Traceback (most recent call last):
File "python", line 54, in
File "python", line 42, in get_letter_grade
File "python", line 31, in get_average
TypeError: 'float' object has no attribute 'getitem'

I can't see what is wrong, since the exact same print call for class average seemed to work in previous lesson and now the error is shown even without the last two print commands!


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)
    result= total / len(numbers)
    return result


students = [lloyd, alice, tyler]

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

print get_average(lloyd)
print get_average(alice)
print get_average(tyler)

def get_letter_grade(student):
    score = get_average(student)
    if score >= 90:
        return "A"
    if score >= 80:
        return "B"
    if score >= 70:
        return "C"
    if score >= 60:
        return "D"
    else:
        return "F"
        
print get_letter_grade(get_average(lloyd))
print get_letter_grade(get_average(alice))
print get_letter_grade(get_average(tyler))

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


#3

get letter grade:

def get_letter_grade(student):

the function parameter should be score, don't get the average inside the function


#4

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