当前位置: 首页 > news >正文

AI教你学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 += 5print("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. 总结

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


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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vert.x HttpClient调用后端服务时使用Idle Timeout和KeepAlive Timeout的行为分析
  • kubernetes 学习 尚硅谷
  • IMS 呼叫流程(详细)
  • window下idea中scala的配置
  • charles抓包flutter
  • 如何在 CentOS 6 上使用 RVM 安装 Ruby on Rails
  • 网络封装分用
  • C语言实现汉诺塔
  • CodeMeter 8.20AxProtector 11.50版本更新
  • 计算机视觉——GFLOPs、FLOPS和FLOPs的区别和联系
  • 【AI学习笔记】初学机器学习西瓜书概要记录(二)常用的机器学习方法篇
  • 【C++】透析string类
  • Kafka+PostgreSql,构建一个总线服务
  • 828华为云征文|部署在线文件管理器 Spacedrive
  • Winform登录实现及工具栏切换
  • Android Studio:GIT提交项目到远程仓库
  • download使用浅析
  • eclipse(luna)创建web工程
  • JavaScript设计模式系列一:工厂模式
  • Python 反序列化安全问题(二)
  • Python 基础起步 (十) 什么叫函数?
  • Redis 懒删除(lazy free)简史
  • VuePress 静态网站生成
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 关于Flux,Vuex,Redux的思考
  • 回顾2016
  • 我的面试准备过程--容器(更新中)
  • 一道闭包题引发的思考
  • 用Visual Studio开发以太坊智能合约
  • 字符串匹配基础上
  • 自制字幕遮挡器
  • raise 与 raise ... from 的区别
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 回归生活:清理微信公众号
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #《AI中文版》V3 第 1 章 概述
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $.ajax()方法详解
  • $refs 、$nextTic、动态组件、name的使用
  • (175)FPGA门控时钟技术
  • (4.10~4.16)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (Java入门)抽象类,接口,内部类
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (六)激光线扫描-三维重建
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (三)elasticsearch 源码之启动流程分析
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)清华学霸演讲稿:永远不要说你已经尽力了