9/9 please help


#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 score in grades:
variance += (average - score) ** 2
variance = variance / len(grades)
return variance

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

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

and it gives me this mistake:
Traceback (most recent call last):
File "python", line 34, in
NameError: name 'variance' is not defined

what i did wrong?


#2

variance=grades_variance(grades) before call grades_std_deviation(variance)


#3

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

print grades_variance(grades)

def grades_std_deviation(variance):
return variance ** 0.5

variance = grades_variance(grades)

print grades_std_deviation(variance)

for i in range(0, len(grades)):
print grades[i]
print grades_sum(grades)
print grades_average(grades)
print grades_variance(grades)
variance = grades_variance(grades)
print grades_std_deviation(variance)


#4

The call of the functions is this:

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

but the variable

variance = grades_variance(grades)

makes possible:

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


#5

It works for me.

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

#6

My complete code is :

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:
        square_diff = (average - score) ** 2
        variance += square_diff
    total_variance = variance / len(scores)
    return total_variance
    
def grades_std_deviation(variance):
    sqr_root = variance ** 0.5
    return sqr_root
    
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)