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. 总结

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


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

相关推荐
涛声依旧god10 分钟前
如何打造一个 AI Agent 自动写作并一键发布技术文章的自动化系统
人工智能·ai·自动化·ai编程
AI_AGENT_DEV_AI16 分钟前
AI 自动化阅卷系统的开发
人工智能
2zcode20 分钟前
基于MATLAB车辆拥堵密度依赖的自适应交通信号控制系统
人工智能·计算机视觉·matlab
xlrqx26 分钟前
商丘家电清洗培训零基础学习需掌握哪些要点零基础到底能不能学
python·学习
环境栈笔记31 分钟前
高性价比指纹浏览器推荐与选型:如何对照价格和实际可用功能筛选候选
前端·人工智能·后端·自动化
卷无止境31 分钟前
Python虚拟环境江湖:从venv到uv,如何避开依赖冲突的坑
后端·python
OpenCSG32 分钟前
GPT-5.6 深夜正式上线:下一代模型能力升级,AI Agent 进入深度协作时代
人工智能·gpt
玉鸯35 分钟前
Agent Harness 工程核心架构拆解与 300 行代码实现
python·agent
Revolution6137 分钟前
Agent 请求失败后,别再疯狂点击重新生成了
人工智能·claude
小宋102140 分钟前
不用学算法也能玩转 AI?普通 Java 程序员转 AI 应用开发路线
java·人工智能·重构