9 review


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.0
    for grade in grades: 
        total += grade
    return total

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

def grades_variance(scores):
    for score in range(len(scores)):
        variance= variance + (average-scores[score])**2
    return variance/len(scores)

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

I am getting a "Oops, try again. grades_std_deviation(515.5510204081633) raised an error: 'float' object is not iterable " error


Hi @tagsolver46667,

There are several issues to fix.

Instead of this ...

print grades

... create a for loop and print each grade on its own line.

The grades_std_deviation function needs to have variance as a parameter, and needs to use that to compute its result ...

def grades_std_deviation(variance):
    return variance**0.5

At the end of your program, you have ...

print grades_std_deviation(grades)

Instead, call the grades_variance function and pass the result of that call to the grades_std_deviation function ...

variance = grades_variance(grades)
print grades_std_deviation(variance)


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