Part of Whole


This gives me this error message
get_class_average([alice]) resulted in an error: list indices must be integers, not str

Could someone explain to me what my code is attempting to do?

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

def get_class_average(students):
    results = []
    for t in students :
        results = get_average(students)
    return average(results)


indicies is plural for index
str is the string type

I'd "translate" to English but it's already saying what's going on


Well yeah i get that but where exactly am i getting the string from?


Start by finding where in your code you're trying to do this action, and then look at where the index was defined and compare to where you should have gotten it from.

Your error message describes how to reproduce the crash, so do so and then study python's error message to get a line number for where it happened

But then again there's only one location where you access anything by index, so you don't even need to do that, you just need to look at your code.

Additionally, perhaps the problem isn't that you're using a string, maybe you should be using a string, but in a different way. You'd have to consider what you were doing there and what you should have been doing there before you decide what the problem is


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