Python 在函数中访问变量

Python 在函数中访问变量,python,Python,对于最后一个打印部分,是否有任何方法不必在每个函数中调用函数?例如,在“打印等级标准偏差”中,我需要在其中嵌套方差和平均值函数。grades\u variance和grades\u average函数是否有办法“返回”在各自函数范围之外可访问的变量?为什么不将结果存储在这样的变量中 from math import sqrt grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] def print_grades(g

对于最后一个打印部分,是否有任何方法不必在每个函数中调用函数?例如,在“打印等级标准偏差”中,我需要在其中嵌套方差和平均值函数。grades\u variance和grades\u average函数是否有办法“返回”在各自函数范围之外可访问的变量?

为什么不将结果存储在这样的变量中

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)))
函数确实返回变量,您只需要存储它们

avg = grades_average(grades)
var = grades_variance(grades, avg)
dev = grades_std_deviation(var)

print avg, var, dev

他们,嗯。。返回一个变量..为什么不存储返回的变量而不是调用两次?!
print grades

g_sum = grades_sum(grades)
g_avg = grades_average(grades)
g_var = grades_variance(grades, g_avg)
g_dev = grades_std_deviation(g_var)

print g_sum
print g_avg
print g_var
print g_dev