What is the problem of my code?


#1



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

the warning is "grades_std_deviation(6.024691358) raised an error: 'float' object is not iterable"
what i should do to correct it?


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 i in range(len(scores)):
        variance = variance + (average - scores[i]) ** 2
    return (variance / len(scores))

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

print grades_std_deviation(grades)


#2

Why are you changing variance value in grades_std_deviaton()? I think this function should only return variance ** 0.5.

The function argument should be variance (as float), not the list of grades.

Hint: You already have a function to find variance.


#3

Thank you, I got it.