The variance


#1


It returns a result not divided by length every time, and i can't understand why variance == variance /len(scores) doesn't work correcly
for example one of error messages is:
Oops, try again. grades_variance([6, 7, 2]) returned 14.0 instead of the expected: 4.6666666667


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


#2

Hi @mark_bark,

This statement simply ...

    variance == variance /len(scores)

... tests whether variance is equivalent to variance /len(scores). Execution then proceeds to the next statement, with the result of the test not saved or used as a condition.

This statement, because it is indented, is part of the grades_variance function ...

    print grades_variance(grades)

#3

Ty for help, i tried to make it this way but there's new error - "Oops, try again. You did not print the correct variance. Double-check your code and make sure you print the variance!"

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

#4

That is because the final statement in your code is indented, making it part of the grades_variance function that you are trying to have it call.


#5

Thank you very much you really helped me!


#6