AI教你学Python 第11天 : 局部变量与全局变量

Day 11: 局部变量与全局变量

1. 变量概述

在Python中,变量是用于存储信息的标签。变量的类型主要由其值决定,Python对变量类型进行动态管理。在编写代码时,理解变量的作用域是至关重要的。

2. 变量的作用域

变量的作用域是指一个变量可以被访问的区域。在Python中,变量主要分为以下两类:

  • 局部变量(Local Variable):定义在函数内部,只能在该函数内访问。
  • 全局变量(Global Variable):定义在函数外的,可以在整个代码文件中的任何地方访问。
3. 局部变量与全局变量的示例

示例代码 1:局部变量

python 复制代码
def local_variable_example():
    x = 10  # 局部变量
    print("Inside function:", x)

local_variable_example()
# print(x)  # 这行代码将会引发错误,因为x是局部变量

示例代码 2:全局变量

python 复制代码
y = 20  # 全局变量

def global_variable_example():
    print("Inside function:", y)

global_variable_example()
print("Outside function:", y)
4. 访问和修改全局变量

在函数内部,如果想要修改一个全局变量,需要使用global关键字来声明该变量是全局的。

示例代码 3:修改全局变量

python 复制代码
z = 30  # 全局变量

def modify_global_variable():
    global z  # 声明z为全局变量
    z += 10   # 修改全局变量
    print("Inside function:", z)

modify_global_variable()
print("Outside function:", z)  # 输出将是40
5. 变量的作用域示例及代码流程图

让我们建立一个更复杂的例子,展示如何在同一代码块中同时使用局部变量和全局变量。

示例代码 4:

python 复制代码
a = 5  # 全局变量

def outer_function():
    b = 10  # 局部变量

    def inner_function():
        nonlocal b  # 使用 nonlocal 关键字来引用外层函数的局部变量
        b += 5
        print("Inside inner_function:", b)

    inner_function()
    print("Inside outer_function:", b)

outer_function()
print("Global variable a:", a)
6. 运行流程图

以下是示例代码4的运行流程图,这将帮助您理解各个变量的作用域及其变化过程。

复制代码
+-----------------------+
|       开始           |
+-----------------------+
          |
          v
+-----------------------+
|     a = 5            | (全局变量)
+-----------------------+
          |
          v
+-----------------------+
|  outer_function()     |
+-----------------------+
          |
          v
+-----------------------+
|     b = 10           | (局部变量)
+-----------------------+
          |
          v
+-----------------------+
|   inner_function()    |
+-----------------------+
          |
          v
+-----------------------+
|   b += 5             | (b变为15)
+-----------------------+
          |
          v
+-----------------------+
| 打印 b (值为15)      |
+-----------------------+
          |
          v
+-----------------------+
| 打印 b (值为15)      |
+-----------------------+
          |
          v
+-----------------------+
| 打印 a (全局)        |
+-----------------------+
          |
          v
+-----------------------+
|       结束           |
+-----------------------+
7. 关键概念总结
概念 定义 示例
局部变量 定义在函数内部的变量,只在函数内有效 def func(): x = 10
全局变量 定义在函数外的变量,可以在整个代码文件中访问 x = 10
global 关键字 用于函数内部修改全局变量,告诉Python该变量来自全局 global x
nonlocal 关键字 用于内嵌函数中,声明使用外层函数的局部变量 nonlocal b
8. 练习题

为了巩固您对局部变量与全局变量的理解,下面是几个练习题:

  1. 编写一个函数,该函数返回一个数量,每次调用时这个数量递增,使用全局变量来存储这个数量。
  2. 修改上一个练习,使其包含一个局部变量,计算和返回调用次数的平方。
  3. 尝试在函数中直接访问未声明的全局变量,观察程序的行为。
9. 总结

掌握局部变量和全局变量的概念对编写清晰且可维护的代码至关重要。局部变量可以避免与全局命名冲突,而全局变量则可以在不同的函数间共享数据。理解如何正确使用这些变量,有助于提高代码的可读性和可维护性,使代码更易于理解和修改。


怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!

相关推荐
GIS数据转换器10 分钟前
地下空间综合管廊运营管理平台
大数据·开发语言·人工智能·经验分享·perl
猿究院_夏燊5 小时前
Spring Bean 生命周期
java·后端·spring
Wang's Blog5 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
dozenyaoyida5 小时前
AI与大模型新闻日报 | 2026-10-17
人工智能·ai·chatgpt·新闻
遇码6 小时前
流式调用中途断连别直接报错:瞬态故障识别、退避重试与中文根因诊断的搭建方法
大数据·人工智能·ai·rust·数据分析·大模型·agent
信誓旦旦的程序猿6 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
救救孩子把6 小时前
AI面试八股文-21_21-多模态Agent面试题-Vision-Language-Agent
人工智能·面试·职场和发展·llava·多模态agent
砚底藏山河6 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年6 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi