7. The Variance


7/9 The Variance

I keep getting the same error a lot of people are getting: "Oops, try again.
grades_variance([6, 5, 8, 3, 0, 8]) returned 0.1666666667 instead of the expected: 8.0"
I've looked at a lot of the posts here, and my code is fairly similar. I cannot find where I'm going wrong. What am I missing?


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


What result do you get doing the math manually?
You probably get either the result of your code, or the result it says is right. From that you can tell whether you've misunderstood something, or if you've misimplemented your understanding. If it's the latter, then you can start comparing what you did to what your program does and adjust where there's a difference.


bro just take return of grades_variance(scores) outside of for loop.


ionatan- The math works, and I get the same answer doing it manually. It's almost like I'm missing something that the site wants me to have. I just can't figure it out.

bytecoder49679- Just tried it, and created a loop. Here's what I got in the console window:

File "python", line 23, in grades_variance
File "python", line 23, in grades_variance
File "python", line 23, in grades_variance
File "python", line 19, in grades_variance
File "python", line 14, in grades_average
RuntimeError: maximum recursion depth exceeded


I just found it... I was returning the variance / len(scores) inside of the for loop. As soon as I moved it outside of the for loop, it worked. bytecoder... You were right, I just mis-understood what you were saying.


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