Python(九十四)变量的作用域

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。
☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。
🌙专栏目标:本专栏的目标是帮助我自己记忆、方便回顾所学知识以及帮助其他想学习python的小伙伴掌握Python编程语言的基本概念和技巧,并逐步提高我们的编程能力。通过这个专栏,我们将学会如何编写Python代码,理解各种数据类型、控制结构和函数,掌握常用的Python模块和库,以及应用Python解决实际问题。

⭐️ 专栏主要内容: 主要学习python的开发环境搭建;Python的基础知识,包括变量、数据类型、条件语句和循环等;python的数据结构和算法;python的函数和模块;python的文件处理等。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:从零开始的Python入门之路

在Python代码中,作用域决定了变量在程序中的可见范围和生命周期。本文详细介绍Python中变量的作用域概念,包括局部变量和全局变量,并说明它们之间的区别。

在这里插入图片描述

文章目录

    • 作用域的概念
    • 局部变量
    • 全局变量
    • 全局变量与局部变量的区别
    • 作用域的注意事项

作用域的概念

作用域是指程序代码能访问该变量的区域。Python中的作用域分为局部作用域和全局作用域。局部作用域是指在函数内定义的变量,而全局作用域是指在函数外定义的变量。

局部变量

局部变量是在函数内部定义并使用的变量,它们的作用范围仅限于函数内部。当函数执行完毕后,局部变量的生命周期也就结束了。

def my_function():# 定义局部变量x = 10print("Inside function, x is:", x)# 调用函数
my_function()
# 尝试在函数外部访问局部变量
print("Outside function, x is:", x)  # 这里会报错,因为x是局部变量,无法在函数外部访问

运行结果:

Inside function, x is: 10
NameError: name 'x' is not defined

解释:在函数my_function内部定义了局部变量x,该变量只能在函数内部访问,尝试在函数外部访问时会报错。

全局变量

全局变量是在函数体外定义的变量,它们的作用范围包括函数内外,整个程序都可以访问到。

# 定义全局变量
y = 20def my_function():print("Inside function, y is:", y)# 调用函数
my_function()
# 在函数外部访问全局变量
print("Outside function, y is:", y)

运行结果:

Inside function, y is: 20
Outside function, y is: 20

解释:全局变量y在函数内部和外部都可以访问到,它的作用范围包括整个程序。

全局变量与局部变量的区别

  1. 局部变量只在函数内部有效,而全局变量可以在函数内外都有效。
  2. 局部变量和全局变量的命名可以相同,但在函数内部访问时,优先使用局部变量。
  3. 在函数内部,如果需要修改全局变量的值,可以使用global关键字进行声明。
# 定义全局变量
z = 30def my_function():# 使用global声明全局变量global zz = 40print("Inside function, z is:", z)# 调用函数
my_function()
# 在函数外部访问修改后的全局变量
print("Outside function, z is:", z)

运行结果:

Inside function, z is: 40
Outside function, z is: 40

解释:通过global关键字声明全局变量z,在函数内部修改了全局变量的值,并在函数外部访问时得到修改后的值。

作用域的注意事项

  1. 在函数内部可以访问全局变量,但不能修改其值,除非使用global关键字进行声明。
  2. 局部变量的作用范围仅限于函数内部,在函数外部无法访问。
  3. 全局变量的作用范围包括函数内外,整个程序都可以访问到。

参考链接:

  • Python 官方文档 - 变量作用域
  • Real Python - Python Scope & the LEGB Rule: Resolving Names in Your Code

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS 设置空格原样显示 white-space:pre-wrap;

CSS 设置空格原样显示 问题描述 html 渲染内容时,对于 空格、回车、Tab 键的 默认处理方式是 : 无论存在多少个连续的空格,都只会保留一个。 结论 由于以上的特性,导致了我们无法直接渲染出原格式的文本。pre 标签 了解一下 &…

element-plus中的图标和文字水平对齐

<span><el-icon size"14px"><Delete /></el-icon> <span>删除</span> </span>解决方法&#xff1a;加上vertical-align: middle样式就可以了 <span><el-icon size"14px" style"vertical-align: …

【STM32CubeIDE 1.15.0】汉化包带路径配置过程

一、IDE软件下载 二、汉化版包路径 三、IDE软件板载汉化包 一、IDE软件下载 ST官网IDE下载链接 二、汉化版包路径 https://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/ 找不到就到.cn后面一级一级进 三、IDE软件板载汉化包 https://mirrors.ustc.edu…

数据库工具解析之 OceanBase 数据库导出工具

背景 大多数的数据库都配备了自己研发的导入导出工具&#xff0c;对于不同的使用者来说&#xff0c;这些工具能够发挥不一样的作用。例如&#xff1a;DBA可以使用导数工具进行逻辑备份恢复&#xff0c;开发者可以使用导数工具完成系统间的数据交换。这篇文章主要是为OceanBase…

​波士顿动力发布全新人形机器人:Atlas

4月16日&#xff0c;波士顿动力&#xff08;Boston Dynamics&#xff09;发布了《再见&#xff0c;液压Atlas》视频&#xff0c;正式宣告其研发的液压驱动双足人形机器人Atlas退役。 在视频的结尾&#xff0c;Atlas深深鞠躬&#xff0c;之后还有一句话“直到我们再次相遇&…

第十六届“华中杯”大学生数学建模挑战赛A题思路

A题 太阳能路灯光伏板的朝向设计问题 太阳能路灯由太阳能电池板组件部分(包括支架)、LED 灯头、控制箱(包含控制器、蓄电池)、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。太阳能电池板也叫光伏板, 它利用光伏效应接收太阳辐射能并转化为电能输出,…

B1098 岩洞施工

solution #include<iostream> using namespace std; int main(){int n, x, top 1000, down 0;//管道水平放入>顶部最低点和底部最高点之间的距离就是能够承担的最大宽度scanf("%d", &n);for(int i 0; i < n; i){scanf("%d", &x);i…

3D模型处理的多进程并行【Python】

今天我们将讨论如何使用 Python 多进程来处理大量3D数据。 我将讲述一些可能在手册中找到的一般信息&#xff0c;并分享我发现的一些小技巧&#xff0c;例如将 tqdm 与多处理 imap 结合使用以及并行处理存档。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生…

SHELL编程----Nginx日志分析2-统计某个时间段的IP访问量

描述 假设 Nginx 的日志存储在 nowcoder.txt 里&#xff0c;内容如下&#xff1a; 192.168.1.20 - - [21/Apr/2020:14:27:49 0800] "GET /1/index.php HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 F…

AI论文速读 | 2024[VLDB]TFB:全面与公正的时间序列预测方法基准测试研究

论文标题&#xff1a;TFB: Towards Comprehensive and Fair Benchmarking of Time Series Forecasting Methods 作者&#xff1a;Xiangfei Qiu ; Jilin Hu&#xff08;胡吉林&#xff09; ; Lekui Zhou ; Xingjian Wu ; Junyang Du ; Buang Zhang ; Chenjuan Guo&#xff08;郭…

【贪心算法经典应用】哈夫曼编码原理与算法详解 python

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

【软件】如何下载谷歌安装包?

1、访问谷歌浏览器官网&#xff1a;https://www.google.cn/chrome/index.html 2、在浏览器地址栏最后添加?standalone1&#xff0c;按回车&#xff0c;重新加载页面。页面和之前的一样&#xff0c;点击下载 完整地址&#xff1a;https://www.google.cn/chrome/index.html?…

2024年第十六届“华中杯”(A题)大学生数学建模挑战赛| 物理建模,多目标优化| 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 让我们来看看华中杯 (A题&#xff09;&#xff01; CS团队倾…

c++学习笔记1,c的扩充

目录 命名空间与c标准库的使用 非面向对象方面的扩充 输入输出方面 引用 结构体、枚举、联合 重载函数 默认参数的函数 作用域运算符 动态内存分配 命名空间与c标准库的使用 为了将c标准库兼容进入std命名空间&#xff0c;c使用c库时要在原名前加c来和c标准库加以区分…

Java面试八股之Iterator和ListIterator的区别是什么

Iterator和ListIterator的区别是什么 这道题也是考查我们对迭代器相关的接口的了解程度&#xff0c;从代码中我们可以看出后者是前者的子接口&#xff0c;在此基础上做了一些增强&#xff0c;并且只用于List集合类型。 定义与基本概念 Iterator&#xff1a; 定义&#xff1a…

虚拟人多元化互动玩法,助力各领域发布会/直播活动“玩转”营销新高度

在数字新科技推动下&#xff0c;各地方文旅、品牌纷纷在发布会、展会、行业峰会论坛、推广直播等场景中&#xff0c;融入虚拟人IP&#xff0c;将虚拟人IP作为虚拟主播、虚拟主持人、虚拟嘉宾、虚拟推荐官、AI数字迎宾员、AI播报员等多重身份&#xff0c;与观众实时互动交流&…

A24 STM32_HAL库函数 之 I2s通用驱动 -- A-- 所有函数的介绍及使用

A24 STM32_HAL库函数 之 I2s通用驱动 -- A-- 所有函数的介绍及使用 1 该驱动函数预览1.1 HAL_I2S_Init1.2 HAL_I2S_DeInit1.3 HAL_I2S_MspInit1.4 HAL_I2S_MspDeInit1.5 HAL_I2S_Transmit1.6 HAL_I2S_Receive1.7 HAL_I2S_Transmit_IT1.8 HAL_I2S_Receive_IT1.9 HAL_I2S_Transmi…

【动态规划】C++解决斐波那契模型题目(三步问题、爬楼梯、解码方法...)

1. 前言 - 介绍动态规划算法 动态规划&#xff08;Dynamic Programming&#xff0c;简称DP&#xff09; 是一种解决复杂问题的算法设计技术&#xff0c;通常用于解决具有重叠子问题和最优子结构性质的问题。它将问题分解成较小的子问题&#xff0c;通过解决这些子问题并保存其…

android车机代码结构分析

1 先看了android系统的整体目录 art虚拟机&#xff0c; device 支持的设备及相关配置&#xff0c; external使用的外部开源库 frameworks // Android基础框架&#xff0c; hardware // HAL层&#xff0c; kernel // packages // 各种app 其他的目录都是系统辅助相关的&am…

NFTScan | 04.08~04.14 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2024.04.08~ 2024.04.14 NFT Hot News 01/ 数据&#xff1a;Runestone 地板价突破 0.07 BTC&#xff0c;创历史新高 4 月 8 日&#xff0c;据数据显示&#xff0c;Runestone 地板价突破 …