9. Review problem



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 x in scores:
variance=variance+((average - x)**2)
total_variance = variance/ len(scores)
return total_variance
print grades_variance(grades)

def grades_std_deviation(variance):
return variance**0.5
print grades_std_deviation(variance)

print print_grades(grades)
print grades_sum(grades)
print grades_average(grades)
print grades_variance(grades)
print grades_std_deviation(grades)

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

I think my code is correct, but still get some error message. Please help to fix this issue. Thanks.

Replace this line with your code.


Problem is in this line:

print grades_std_deviation(grades)

Function grades_std_deviation takes as a parameter variance of grades, not list of them.


Thank you so much! The problem has been fixed.


You're very welcome!


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