Alice error!


#1

<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)
final = total / len(numbers)
return final
students = [lloyd, alice, tyler]
def get_average(student):
homework = average(students["homework"])
quizzes = average(students["quizzes"])
tests = average(students["tests"])

quizzes = quizzes * 0.3

tests = tests * 0.6

weight= (homework * 0.1) + (quizzes * 0.3) + (tests * 0.6)
return weight

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(lloyd)

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

ERROR: Oops, try again. get_class_average([alice]) resulted in an error: list indices must be integers, not str

<

`


#2

quizzes = quizzes * 0.3

tests = tests * 0.6

this entry above is #ed out


#3

The only thing I can see is that this weight system is off that you are using. Instead of returning it outside the function you should return it inside. This can be done simply through returning each like this:

number times class + / number times class + / number times class

Class is probably not the right word to use but it should look something like this:

return 0.1 * homework + / etc...

If that still doesn't solve your problem just let me know!


#4

dosent work still got the same error:(


#5

Can you post the full code without the notes? I will copy it into my lesson and look at it further. everything looks just like it should be so I guess we got to dig a little bit deeper.


#6

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)
final = total / len(numbers)
return final
students = [lloyd, alice, tyler]
def get_average(student):
homework = average(students["homework"])
quizzes = average(students["quizzes"])
tests = average(students["tests"])
return (0.1 * homework) + (0.3 * quizzes) + (0.6 * 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(lloyd)

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



#7

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]
}

def average(numbers):
total = sum(numbers)
total = float(total)
final = total / len(numbers)
return final
students = [lloyd, alice, tyler]
def get_average(student):
homework = average(students["homework"])
quizzes = average(students["quizzes"])
tests = average(students["tests"])
return (0.1 * homework) + (0.3 * quizzes) + (0.6 * 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(lloyd)
def get_class_average(students):
results = []
for student in students:
results.append(get_average(student))
return average(results)


#8

Eurekaaaaaa!!!! It is found! students need to be student in this case! wahooo :smiley:


#9

Woo Hoo Awesome !!!!!


#10

Hopefully that solves all the issues and you can finish this section! That was a little bit of trouble to find but thankfully it didn't take too long. If you need anymore help just ask! :smiley:


#11

Cool Thnx, will do :slight_smile:


#12

5 posts were split to a new topic: Can not solve


#13