It's OK to be average


#1

This is my code and the error message that pop up is as follows:

Oops, try again. average([3, 0]) resulted in an error: global name 'total' is not defined

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):
    def sum(numbers):
        total = sum(numbers)
        total = float(total)
        return float(total)/len(numbers)
    return total

#2

Hint: Your sum function should be outside the average function.


#3

why do you have def average(numbers): and after def sum(numbers), once you return something in function, function is done executing, so you are not returning total

remove def sum and put float(total)/len(numbers) in variable


#4

Thank you for pointing out my stupidity, new in coding