What wrong in my code? (Review)


Whats wrong with my code? It seems that my code is correct to me but why i am having that kind of error even if it prints all the the value correctly?


Oops, try again. It looks like not all grades were printed! Make sure you are printing ech one on their own line.

[100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5]

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):
    variance = 0
    for score in scores:
        variance += (grades_average(scores) -  score) ** 2
    variance = variance / len(scores)
    return variance
def grades_std_deviation(variance):
    return variance ** 0.5

variance = grades_variance(grades)

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


That line looks a little bit off. We should not have to call grades_average more than once in the run.


i fixed my code. the only problem i did is i typed print grades instead of print_grades. but thanks anyway


There are 13 grades in the list. That means your program is calling the grades_average function 13 times. Why not call it before the loop and cache the return value. Then you can retrieve it in how ever many loops. It becomes a static value.

variance = 0
average = grades_average(scores)

Now we can use average in the loop and let the function rest.


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