Oops, try again. grades_std_deviation(3.3469387755) returned 1.0 instead of the expected: 1.8294640678
On line 28, where I use return variance ** float(1/2) instead as variance ** (0.5) as given by the instruction. It shows a error message. But if I change that to variance ** (0.5), everything's fine. I'm very confused about what happened because aren't the two expressions the same?
Replace this line with your code. 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(grades): average = grades_average(grades) variance = 0 for i in grades: variance += (average - i) ** 2 return variance / len(grades) print grades_variance(grades) def grades_std_deviation(variance): return variance ** float(1/2) variance = grades_variance(grades) print grades_std_deviation(variance)