<In what way does your code behave incorrectly? Include ALL error messages.>
Oops, try again. You did not print the correct variance. Double-check your code and make sure you print the variance!

<What do you expect to happen instead?>

```python

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:
return 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
variance=variance/len(scores)
return variance
print variance

if you put it inside the loop and do not change the variable, when it start the second loop, the value of variance will be from the result of this code:

variance = variance/len(scores)

instead of:

variance += (average - score) ** 2

Sorry, idk how to explain properly:

Here is some code that show the result will be different.

def grades_variance(scores):
average = grades_average(scores)
variance = 0
for score in scores:
variance += (average - score) ** 2
variance = variance/len(scores)
return variance
def grades_variance1(scores):
average = grades_average(scores)
variance = 0
for score in scores:
variance += (average - score) ** 2
result = variance/len(scores)
return result
def grades_variance2(scores):
average = grades_average(scores)
variance = 0
for score in scores:
variance += (average - score) ** 2
variance = variance/len(scores)
return variance
print "grade variance = " ,grades_variance(grades)
print "grade variance1 = ", grades_variance1(grades)
print "grade variance2 = ", grades_variance2(grades)

Notice grade_variance2 function have different result.