Standard deviation


#1



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


Why does the instructions tell you to make a new variable 'variance' after the function? Couldn't it be done without it. Following the instructions I get 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:
        variance = (average - score) ** 2 + variance
    return variance/len(scores)
    
    
def grades_std_deviation(variance):
    return variance ** 0.5
variance = grades_variance(grades)

print grades_std_deviation(variance)

Can it be done like this:

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 + variance
    return variance/len(scores)
    
    
def grades_std_deviation(variance):
    variance = grades_variance(grades)
    return variance ** 0.5



print grades_std_deviation(grades)

is there something I'm not seeing here?


#2

If you write it this way, then you don't need a parameter. You're only wiping it out, anyway.


#3

thanks again for the help