Variance


#1



The console is returning something other than the expected result and I am unsure what is wrong with this 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(scores):
    average = grades_average(scores)
    variance = 0
    for score in scores:
        diff = (average - score) ** 2
        variance = variance + diff
        variance = variance / len(scores)
    return variance

print grades_variance(grades)


#2

step 5 of the instructions:

Divide the total variance by the number of scores

This tells you to do the division after the loop. You do this division inside the loop, causing way too many divisions


#3

The total variance should be outside the for-loop, like so:

for score in scores:
    diff = (average - score) ** 2
    variance = variance + diff
total_variance = variance / len(scores)

#4

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