Part of the whole


#1


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

okay so I have tried this multiple ways,but I always end up going back to this code, I have and error message that reads
Oops, try again. get_class_average([alice]) resulted in an error: list indices must be integers, not str
Just wondering what I am doing wrong?

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)
    tot= float(total) /len(numbers)
    return tot
    
def get_average(student):
    homework = average(student['homework'])
    quizzes = average(student['quizzes'])
    tests = average(student['tests'])
    return .1* average(student['homework']) + .3* average(student['quizzes']) + .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_average(lloyd))

def get_class_average(students):
    students = ['lloyd','alice','tyler']
    results = []
    results.append(get_average(students))
    return average(results)


#2

When you make the students variable, putting the names in to singe quotes makes it a string. You do not want that, you want it to call the information related to the student.


#3

Okay I deleted the quotes, but I'm still getting the same error?


#4

Looking through your code I see a few of things that may be throwing it off.

First, in your get_average method you create the variables but don't actually use them. The math is still correct, it seems, but you basically have a whole block of code you don't use so there could be an error in there that I'm not seeing.

Second, step three hints to create a for loop that you don't have in your code in your get_class_average method.

Third, if you are going to create a students variable, it should be outside of any function so that it can be accessed by anything that needs to. However, you do not actually need the list in order to pass the lesson.


#5

Yeah I went through and just corrected them, thanks!


#6

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