from math import sqrt
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/len(grades)
return average
def grades_variance(scores, average):
variance = 0
for i in range(len(scores)):
variance += (average - scores[i])**2
return float(variance)/len(scores)
def grades_std_deviation(variance):
grades_variance(grades,grades_average(grades))
return sqrt(variance)
print grades
print grades_sum(grades)
print grades_average(grades)
print grades_variance(grades, grades_average(grades))
print grades_std_deviation(grades_variance(grades, grades_average(grades)))
Для последнего раздела печати есть ли способ не вызвать функцию внутри каждой функции? Например, в «print grade_std_deviation» мне нужно встроить дисперсию и среднюю функцию внутри. Есть ли способ, чтобы функции grades_variance и grades_average возвращали переменную, доступную за пределами области действия соответствующей функции?Доступ к переменной в функциях
Они, um .. * do * возвращают переменную .. – roippi
Почему бы не сохранить возвращенные переменные вместо вызова дважды ?! –