# Just Weight and See with sum()?

#1

Hi there!

Soooo my question is:

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)

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

why doesn't this work?

I got the error: "Oops, try again. get_average(alice) raised the following error: sum expected at most 2 arguments, got 3 "
Therefore it has to to with the sum() function.
Because it works when removing the sum() function and just adding everything up.

Thanks for letting me understand this.

#2

If it expects at most two arguments then summing an arbitrary number of arguments must not be what it's meant to do. (And indeed there's no need for it to do so when the + operator already does that)
You can find its documentation by googling "python built-in functions" and looking for results from docs.python.org

#3

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