Review 9/9


#1



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


For some reason I keep getting an error message when trying to print the std dev...... Can anyone shed any light on this?


grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5]

for x in grades:
    print x

def grades_sum(grades):
    total = 0
    for grade in grades: 
        total += grade
    return total

print grades_sum(grades)

    
def grades_average(grades):
    sum_of_grades = grades_sum(grades)
    average = sum_of_grades / float(len(grades))
    
    return average
    
print grades_average(grades)

def grades_variance(scores):
    average = grades_average(scores)
    variance = 0
    for score in scores:
        print (average - score) ** 2
        variance += (average - score) ** 2
        print variance
    result = variance / float(len(scores))
    
    return result
    
print grades_variance(grades)
    
def grades_std_deviation(variance):
    return variance ** 0.5

    variance = grades_variance(grades)
    print grades_std_deviation(variance)

    print grades_variance(grades)

print grades_std_deviation(variance)


#2

Take the space out from the beginning of the last 4 lines. The only thing that should be in your grades_std_deviation function is return variance ** 0.5


#3

Sorry not quite sure I follow..........

I have tried deleting lines 38 to 43 to clean out those irrelevant bits of code but this still does not seem to correct the problem............. Can you expand a bit?


#4

If you set variance in the std_deviation function, it won't get set until the function is called, and it will overwrite the parameter that you're passing in for the function.

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 = variance / len(scores)
    return variance

def grades_std_deviation(variance):
    return variance ** 0.5
    
variance = grades_variance(grades)

print print_grades(grades)
print grades_sum(grades)
print grades_average(grades)
print grades_variance(grades)
print grades_std_deviation(variance)

#5

aha I'm with you - thanks a million! :slight_smile:


#6

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