Review error how to fix?


#1



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

it says that the float value is not iterable

Ops, tente outra vez. grades_std_deviation(188.22222222222226) raised an error: 'float' object is not iterable

Why is this an issue?


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 = variance + (average - score) ** 2
        variance_ = variance / float(len(scores))
    return variance_

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


#2

This should be the last part of your code:

def grades_std_deviation(variance):
    return variance ** 0.5 # changed (1)
 
print_grades(grades) # changed (2)
print grades_sum(grades)
print grades_average(grades)
var = grades_variance(grades) # changed (3)
print var 
print grades_std_deviation(var)

As per the definition of the method grades_std_deviation, given in previous exercise, you have:

  1. Define a function grades_std_deviation(variance).
  2. return the result of variance ** 0.5

Thus, the first and third changes are necessary.

Also, the second change is because you have to print each grade on a new line, and you already have a print_grades function. So, you have to just call it.

Hope it helps! :slight_smile:


#3

It did help, thank you!