8. Standard Deviation: "Variance" not defined


#1



https://www.codecademy.com/courses/python-intermediate-en-7mgOa/2/2?curriculum_id=4f89dab3d788890003000096


No clue why it says Variance is not defined.

Traceback (most recent call last):
File "python", line 27, in
NameError: name 'variance' is not defined


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 score in grades:
        variance += (average - score) ** 2
        return variance / len(grades)
def grades_std_deviation(variance):
    return variance ** 0.5
    variance = grades_variance(grades)
print grades
print grades_sum(grades)
print grades_average(grades)
print grades_variance(grades)
print grades_std_deviation(variance)


#2

Hi @jrobbins0001,

This statement is indented, making it part of the grades_std_deviation function ...

    variance = grades_variance(grades)

That statement does not get executed, since it immediately follows the return statement. Even if it did execute, it would create a local variance variable, visible only within the function.


#3

thank you, this was hurting my brain for hours


#4