Issues


#1

Error Message:

Traceback (most recent call last):
File "python", line 49, in 'module'
File "python", line 45, in get_class_average
File "python", line 26, in get_average
TypeError: 'type' object has no attribute 'getitem'

Code:

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)
total = total/len(numbers)
return total
def get_average(student):
homework = average(student['homework'])
quizzes = average(student['quizzes'])
tests = average(student['tests'])
return (0.1 * homework) + (0.3 * quizzes) + (0.6 * tests)
def get_letter_grade(score):
if score >= 90:
return 'A'
if score >= 80:
return 'B'
if score >= 70:
return 'C'
if score >= 60:
return 'D'
else:
return 'F'
get_letter_grade(lloyd)
def get_class_average(students):
results = []
for student in students:
get_average(students)
results.append(get_average(students))
return average(results)
students = [lloyd , alice , tyler]
print (get_class_average(students))

letter = get_letter_grade (get_class_average(students))
print (letter)

What do I need to fix, and why?


#2

Hello, @tagace55561!
I gave it a look at your code and at line 44 you're using the variable student to iterate through the list but you're using students, which is passed to you by parameter so you're pretty much passing the entire students' list to the function get_class_average

Your actual code: referring to the for loop with the function

def get_class_average(students):    
    results = []    
    for student in students:        
        get_average(students)

What it should be:

def get_class_average(students):    
    results = []    
    for student in students:        
        get_average(student)

It seems that's what is causing all those errors.
Now, what it will happen is, you'll send each student at once, not the entire list.
But can you send an entire list other than one student at a time? Yes but you'll need a loop instruction to get the values you need and all that stuff.
If there's still something wrong, quote me and I'll get back to you as soon as possible.

Best regards,
g4be