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

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


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

相关推荐
有梦想的攻城狮几秒前
spring中的@Lazy注解详解
java·后端·spring
知来者逆11 分钟前
计算机视觉——MedSAM2医学影像一键实现3D与视频分割的高效解决方案
人工智能·深度学习·计算机视觉·图像分割·智能医疗·万物分割
强化学习与机器人控制仿真20 分钟前
openpi 入门教程
开发语言·人工智能·python·深度学习·神经网络·机器人·自动驾驶
璇转的鱼28 分钟前
Stable Diffusion进阶之Controlnet插件使用
人工智能·ai作画·stable diffusion·aigc·ai绘画
不是吧这都有重名36 分钟前
[论文阅读]Deeply-Supervised Nets
论文阅读·人工智能·算法·大语言模型
野犬寒鸦43 分钟前
Linux常用命令详解(下):打包压缩、文本编辑与查找命令
linux·运维·服务器·数据库·后端·github
明月看潮生1 小时前
青少年编程与数学 02-019 Rust 编程基础 08课题、字面量、运算符和表达式
开发语言·青少年编程·rust·编程与数学
AIWritePaper智能写作探索1 小时前
高质量学术引言如何妙用ChatGPT?如何写提示词?
人工智能·chatgpt·prompt·智能写作·aiwritepaper·引言
正宗咸豆花1 小时前
RNN(循环神经网络)原理与结构
人工智能·rnn·深度学习
huohuopro1 小时前
thinkphp模板文件缺失没有报错/thinkphp无法正常访问控制器
后端·thinkphp