Python怎么修改全局变量

在Python中,全局变量是在整个程序中都可见的变量。通常情况下,全局变量可以在任何函数或类中访问和修改。然而,在某些情况下,我们可能需要在函数内部修改全局变量的值。本文将介绍如何在函数内部修改全局变量,并提供一个具体的问题和解决方案。

全局变量的定义和访问

在Python中,我们可以在函数外部定义全局变量,并在函数内部访问它们。以下是一个简单的示例:

# 定义全局变量
global_var = 10

def print_global_var():
    # 访问全局变量
    print(global_var)

# 调用函数
print_global_var()

在此示例中,我们在函数外部定义了一个名为global_var的全局变量,并在函数内部的print_global_var函数中访问它。输出结果将是10

修改全局变量的值

要在函数内部修改全局变量的值,我们需要使用global关键字。以下是修改全局变量的示例:

# 定义全局变量
global_var = 10

def modify_global_var():
    # 使用global关键字声明要修改的全局变量
    global global_var
    # 修改全局变量的值
    global_var = 20

# 调用函数前
print(global_var)

# 调用函数
modify_global_var()

# 调用函数后
print(global_var)

在此示例中,我们在modify_global_var函数内部使用global关键字声明要修改的全局变量global_var。然后,我们将其值修改为20。在函数调用前和调用后分别打印全局变量的值,我们可以看到输出结果分别是1020

具体问题和解决方案

现在,让我们假设有一个具体的问题,我们需要在一个函数中修改一个全局变量,并在另一个函数中使用修改后的值。下面是一个示例问题的描述:

假设我们正在开发一个程序,用于记录学生的成绩。我们需要实现两个函数:一个函数用于将学生的成绩添加到一个全局的成绩列表中,另一个函数用于计算学生的平均成绩。我们需要在添加成绩的函数中修改全局成绩列表,并在计算平均成绩的函数中使用修改后的列表。

为了解决这个问题,我们可以通过以下方式修改全局变量:

# 定义全局成绩列表
grades = []

def add_grade(grade):
    # 使用global关键字声明要修改的全局变量
    global grades
    # 将成绩添加到全局成绩列表
    grades.append(grade)

def calculate_average():
    # 使用global关键字声明要访问的全局变量
    global grades
    # 计算平均成绩
    average = sum(grades) / len(grades)
    return average

# 添加成绩
add_grade(90)
add_grade(85)
add_grade(95)

# 计算平均成绩
average_grade = calculate_average()

# 打印平均成绩
print("Average grade:", average_grade)

在此示例中,我们定义了一个全局变量grades,用于存储学生的成绩。add_grade函数用于将成绩添加到全局成绩列表中,calculate_average函数用于计算平均成绩。

add_grade函数中,我们使用global关键字声明要修改的全局变量grades,然后使用append方法将成绩添加到列表中。

calculate_average函数中,我们使用global关键字声明要访问的全局变量grades,然后使用sum函数计算总成绩,并除以成绩的数量来计算平均成绩。

最后,我们调用add_grade函数三次,将三个学生的成绩添加到全局成绩列表中。然后,我们调用calculate_average函数来计算平均成绩,并将结果打印出来。