15分钟学Python 第11天 : 局部变量与全局变量

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

1. 变量概述

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

2. 变量的作用域

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

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

示例代码 1:局部变量

def local_variable_example():
    x = 10  # 局部变量
    print("Inside function:", x)

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

示例代码 2:全局变量

y = 20  # 全局变量

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

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

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

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

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

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

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


在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值