8/9 Standard Deviation


Traceback (most recent call last):
File "python", line 30, in
File "python", line 26, in grades_std_deviation
TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'float'

I can't figure out what is wrong here. I have it exactly as the instructions say, and I've looked through the relevant forum posts to confirm, but I still get an error.

grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5]

def print_grades(grades):
    for grade in grades:
        print grade

def grades_sum(grades):
    total = 0
    for grade in grades: 
        total += grade
    return total
def grades_average(grades):
    sum_of_grades = grades_sum(grades)
    average = sum_of_grades / float(len(grades))
    return average

def grades_variance(scores):
    average = grades_average(scores)
    variance = 0
    for score in scores:
        variance += (average - score) ** 2
    return variance / (len(scores))

def grades_std_deviation(variance):
    return variance ** 0.5

variance = grades_variance(grades)

print grades_std_deviation(grades)


Hi @tanner1993,

Note that this header implies that you must pass a value for the variance to the grades_std_deviation function ...

def grades_std_deviation(variance):

However, you passed it grades, here ...

print grades_std_deviation(grades)

Your previous statement assigns a value to variance. Pass that variance variable to the grades_std_deviation function instead of passing it grades.


Thanks! I knew there had to be something right in front of me that I just wasn't seeing. All the other lessons had me call function(grades) so I just assumed the same for this.