Standard Deviation


#1



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


I receive this error code: Oops, try again. grades_std_deviation(2.1875) returned 1.0399139475 instead of the expected: 1.4790199458


I am just not sure why my standard deviation calculation is not working correctly. Any suggestions?


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.0
    return variance/len(scores)
print grades_variance(grades)
def grades_std_deviation(variance):
    squared=variance**.05
    return squared
variance=grades_variance(grades)
print grades_std_deviation(variance)


#2

** means 'to the power of'. So the line squared = variance ** .05 calculates variance to the power of 0.05 and stores the result to the variable squared. Moving the decimal place ** 0.5 would give you the square root (variance to the power of 0.5).


#3

Thank you! Silly mistake to make on my part; I appreciate your help!


#4

You're welcome!

You may also want to rename squared to square_root to reflect what the function grades_std_deviation is doing.


#5

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