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

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


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

相关推荐
宅小海16 分钟前
scala String
大数据·开发语言·scala
小喵要摸鱼18 分钟前
Python 神经网络项目常用语法
python
qq_3273427318 分钟前
Java实现离线身份证号码OCR识别
java·开发语言
锅包肉的九珍19 分钟前
Scala的Array数组
开发语言·后端·scala
心仪悦悦22 分钟前
Scala的Array(2)
开发语言·后端·scala
yqcoder1 小时前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
2401_882727571 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
baivfhpwxf20231 小时前
C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)
开发语言·c#
许嵩661 小时前
IC脚本之perl
开发语言·perl
长亭外的少年1 小时前
Kotlin 编译失败问题及解决方案:从守护进程到 Gradle 配置
android·开发语言·kotlin