8/9 HELP Standard Deviation error : 'float' object isn't iterable


#1

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(grades):
average = grades_average(grades)
variance = 0
for n in grades:
variance = variance + (average - n)**2
return float(variance) / len(grades)

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

print grades_std_deviation(grades)

why is it showing "grades_std_deviation(0.0) raise an error: 'float' object isn't iterable" ??
how can I fixed it><


#2

@megablaster35505,

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):
 #float total
 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
'''
print print_grades(grades)
print "============="
print grades_sum(grades)
print "============="
print grades_average(grades)
'''
def grades_variance(grades):
 average = grades_average(grades)
 print "\tAverage:\t" + str(average)
 print "=1=========="
 variance = 0
 for n in grades:
    variance = variance + (average - n)**2
    # print variance
 print "=2=========="
 print "\tvariance:\t" + str(float(variance) / len(grades))
 print "=3=========="
 return float(variance) / len(grades)

#print grades_variance(grades)

def grades_std_deviation(grades):
 variance = grades_variance(grades)
 # print grades_variance(grades)
 print "=4= The std_deviation is:"
 return variance **0.5


print grades_std_deviation(grades)

#3

For this portion, following the instructions to the dot helps.

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

print grades_std_deviation(variance)

I have no real idea why it will generate an iteration error if the variance variable is defined in the grades_std_deviation versus outside.


#4

@indecisively,
as indetation is very important in the Python code structure,
please......

re-edit your Post

  • leave one blank-line above of your code
  • select your code in the Post
  • then =click= on the </>-symbol-of-this-editor

Your code will then be in a pre-code state
and you will be able to make/present the proper indentations.