python中的全局变量与局部变量

什么是全局变量和局部变量?有什么区别? Python是一种非常注重准确性和简洁性的编程语言,允许我们定义不同范围的变量,便于管理不同部分的数据。尽管全局变量可以在程序的任何地方被访问,但在实际开发中,过度使用全局变量可能会导致代码变得难以理解和维护。局部变量(Local Variable)是指在函数或方法内部定义的变量,它的作用范围仅限于定义它的那个函数或代码块。如果多个函数需要访问相同的数据,可以考虑将数据封装在一个类中,通过类的方法来操作数据。:局部变量的作用范围仅限于函数内部,它们的生命周期短,不易引起其他函数的作用,因此是更安全的选择。 阅读详情
AI摘要

文章介绍了Python中局部变量和全局变量的区别及使用规则。局部变量只在函数内部有效,而全局变量在整个模块中都可访问。在函数内部修改全局变量需使用`global`关键字,否则会创建新的局部变量。文章强调了不建议在函数内修改全局变量以保持代码的可维护性。

1,局部变量与全局变量

1,定义

局部变量:就是在函数体内的变量,在python中冒号“:”后面的变量都是局部变量,当然局部与全局也是一个相对的概念。比如出现函数嵌套的情况。

全局变量:就是在模块中所有函数都可以调用的变量,一般在函数体外被定义。

2,使用过程

函数内的局部变量,在函数体外是不可以使用的,函数内的变量就是局部变量,只在函数体内生效。

例如,图1的discount(price,rate)函数,两个形式参数price和rate,还有final_price都是函数的局部变量。

如果在函数体外使用就会出错。

图1

全局变量,比如图2的old_price,rate和new_price都是全局变量。因此可以在函数体内访问他们。在python中,可以肆无忌惮地在函数体内部使用全局变量,但是如果在函数体内修改全局变量则会出错。

图2

图3

其实,当在函数体内部调用全局变量时,是可以正常使用的,

但是当在函数体内部修改全局变量时,python是在函数体内部新创建了一个同名的局部变量,所以当我们在函数体内部打印该变量时,是修改后的值,但是当在程序外部打印正常的全局变量时,发现值并没有被修改。正如小甲鱼解释的一样。

如果一定要在函数体内部修改全局变量,可以在变量名前加 global关键字,如下所示

3,注意事项

注意:python出现这种现象是一种程序的保护机制,因为全局变量在很多地方都会使用,不建议在函数体内部修改全局变量,如果有这一类的操作,会导致程序很难维护。就像这里小甲鱼说的一样。

如果你已经知道在函数中修改全局变量可能会导致可读性变差、出现莫名其妙的BUG、代码的维护成本成倍提高,但还是要坚持这么做,可以用global关键字来实现。

但是,如果遇到这种情况,思考一下,为什么要这么做,能不能把变量的位置挪到函数内部,让它变成局部变量。如果可以,就不要有 使用全局变量然后再函数里修改的操作。

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

优快云大礼包:全网最全《全套Python学习资料》免费分享🎁

如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。

😝朋友们如果有需要的话,可以V扫描下方二维码免费领取🆓

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python学习路线

image-20230619144606466

python学习路线图1

二、Python基础学习
1. 开发工具

2. 学习笔记

在这里插入图片描述

3. 学习视频

在这里插入图片描述

三、Python小白必备手册

图片

四、数据分析全套资源

在这里插入图片描述

五、Python面试集锦
1. 面试资料

在这里插入图片描述

在这里插入图片描述

2. 简历模板

在这里插入图片描述

因篇幅有限,仅展示部分资料,添加上方即可获取

【Python】新手入门:全局变量和局部变量的概念、区别以及用法 全局变量和局部变量是Python编程中的基础概念,理解它们的作用域、生命周期以及使用方式对于编写高质量的代码至关重要。尽量避免使用全局变量:全局变量可能导致代码难以理解和维护。在可能的情况下,应尽量使用局部变量和参数传递数据。明确变量的作用域:在编写函数时,应明确变量的作用域,避免在函数内部意外地修改全局变量。使用global和nonlocal关键字:当需要在函数内部修改全局变量或外层函数的局部变量时,应使用global或nonlocal关键字来明确声明。通过返回值传递结果。 阅读详情

相关推荐

Python中局部变量和全局变量的详解

1.局部变量 定义: 局部变量,就是在函数内部定义的变量 约束: 其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的 实例: def test1(): a = 120 print("我是局部变量a:",a) a = 240 print("修改之后的局部变量a:",a) def test2(): a =360 print("我是test02函数中的局部变量a",a) test1() test2() 注意:局部变量的作用,为了

测试领头羊 9162

Python系列(4)—— 全局变量

在Python编程中,全局变量是一个重要的概念。全局变量是在函数之外定义的变量,可以在程序的任何地方访问和修改。本文将深入探讨Python中的全局变量,包括其工作原理、使用方法以及注意事项。

聚集机器学习、信息安全 1万+

Python中的全局变量

在Python编程中,全局变量是在整个程序中都可以访问的变量。在本文中,我们将探讨如何定义和使用全局变量,并介绍一些与全局变量相关的注意事项。因此,在编写代码时,应谨慎使用全局变量,并尽量避免对其进行频繁的修改。要定义一个全局变量,我们只需要在函数或类的外部直接声明变量,而不在任何函数或类的内部。全局变量是在整个程序中都可以访问的变量,它们可以在任何函数或类中使用,而不需要通过参数传递。如果全局变量的值需要在不同的模块中共享,可以将这些变量定义在一个单独的模块中,并在其他模块中导入使用。

CyberNerdX的博客 1088

Python全局变量和局部变量(超详细,纯干货,保姆级教学)

定义看起来一愣一愣的,没关系我也是。我将会用实例的方式为你解释。我们也知道在Python中有一个global关键字用来声明一个全局变量。那这玩意儿到底什么用。来看看global keykey="first()的key"print("进入first函数,给key赋新值,此时print(key)得到***"+key+"***\n")print("进入second函数,但是没有给key赋新值,此时print(key)得到***"+key+"***\n")key="third()的key"

Kristen_jiang的博客 5万+

图形学基础|基于SDF的卡通阴影图

图形学基础|基于SDF的卡通阴影图 文章目录图形学基础|基于SDF的卡通阴影图一、前言二、SDF(Signed Distance Field)三、阴影图生成3.1 SDF生成3.2 插值参考博文 一、前言 回顾之前做的卡通渲染,角色面部阴影是靠一张阴影贴图实现的。 为了更好地控制角色的脸部阴影,通过计算脸部朝向与光照方向的夹角和一张单色的FaceMap来判断。 FaceMap的每个像素表示:该像素判断为阴影时候需要达到的夹角。 例如: 当方向光正对角色的时候,夹角为0°,对应的值为0,此时,FaceMap

【黑键】 1万+

C#实战:基于ONNX与SCRFD/ArcFace的高效人脸识别系统开发

本文详细介绍了如何在C#环境中,利用ONNX Runtime高效部署SCRFD人脸检测与ArcFace人脸识别模型,构建一个完整的、高性能的人脸识别系统。内容涵盖环境搭建、模型推理、人脸对齐、特征提取等核心模块,并提供了从Demo到生产系统的优化思路与实战代码,为.NET开发者提供了一套开箱即用的解决方案。

weixin_29061821的博客 488

python 全局变量和局部变量

一、局部变量和全局变量的定义:  局部变量:定义在函数内部的变量称为局部变量,他的作用域范围为函数内,也就是出了函数外就无效。举个简单的例子:葫芦娃在国内基本大家都认识他,大家一看到他就会知道,咦,那是葫芦娃。但是一旦出了国外,就没有人认识他了,葫芦娃的作用域范围为国内。 代码分析: # 定义一个函数 def my_func1(): # 定义一个变量 # 局部变量(定义在函...

一起学习 4079

西电微机系统课程设计——步进电机开环控制系统设计

西电微机系统课程设计——步进电机开环控制系统设计 一、课程设计目的 1.掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。 2.加深对 A/D 和并行接口芯片的工作方式和编程方法的理解。 3.搞懂步进电机的工作原理及控制方式,掌握开环控制系统的设计思路和实现方法。 二、课程设计的内容 手动调节电位器旋钮(0V~5V),通过 ADC0809 模拟输入水库水位 0 米~50 米,CPU收到水位信号后,根据水位高度控制步进电机(水闸)进行调节。 三、系统功能与设计要求 基本功能要求 手

OutlierLi's Blog 7525

Python中的全局变量与局部变量

全局变量指的是在整个python文件中定义的变量,而局部变量是在函数内部定义的变量。a = 1b = 2从以上代码中可以看出,变量a是全局变量,变量b是定义在yang_func()函数的内部,因此b是局部变量。在“1 定义”中提到,定义在局部(函数)中的变量是局部变量,可以通过global在局部中定义全局变量,代码如下所示。global bb = 2print(b)此时,变量b虽然在yang_func()中定义,但是因为有global修饰,因此b是全局变量,此时打印出b的值是2。

hou09tian的博客 1689

SOME/IP协议详解「1.1·面向服务与面向信号」

面向信号和面向服务的区别,和举例子

雪云飞星的博客 5654

OpenCV自学记录(1)——(一拳超人)图像处理基础(图像获取、图像变化)

学习深度学习进行图像分类和目标检测时,要有一定的图像处理的基础。在学习深度学习之前,看了一本《图像处理技术基础》,现在也忘得差不多了,后悔当初没有整理记录下来。现在整理一下图像处理的常用方法,最后实现一个小项目——基于OpenCV的车牌号识别。 OpenCV自学记录(1)——图像处理基础(一)1、图像获取1.1获取图像数据1.2 获取摄像头图像数据2、图像变化2.1 移动(translation)...

qq_40784418的博客 1455

Python中的全局变量和局部变量详解

总结全局变量和局部变量在Python中的区别至关重要。全局变量在整个程序中可被访问,而局部变量仅在其定义的函数内部可见。这种区别涉及作用域和访问权限,影响程序的结构和灵活性。同时,对于避免命名冲突和程序逻辑的清晰性也至关重要。合理使用全局变量和局部变量可以提高代码的可读性和维护性。同时,对于嵌套函数中局部变量的修改,nonlocal关键字在修改外层函数的变量值时是非常有用的。通过理解这些概念,能够更好地利用Python的强大功能和灵活性,写出更加优雅和健壮的代码。

z099164的博客 3608

基于STM32、HAL库的SC16IS752IPW总线转UART驱动程序设计

/ FIFO空间不足。// 设置LCR寄存器的DLAB位为1以访问DLL/DLH。// 设置LCR寄存器,先访问DLL/DLH。// 设置LCR寄存器(不包含DLAB位)

corlin6688的博客 817

python局部变量和全局变量

为了保证所有的函数都能够正确使用到全局变量,应该将全局变量定义在其他函数的上方a = 10b = 20demo()c = 30注意由于全局变量 c,是在调用函数之后,才定义的,在执行函数时,变量还没有定义,所以程序会报错!

y516369的博客 1365

【Proteus仿真】51单片机+DAC0832+数码管制作0-25V电压可调

【Proteus仿真】51单片机+DAC0832+数码管制作0-25V电压可调

perseverance51博客 2117

高通Camx功能feature分析之一:remosaic功能导通

本文详细介绍了S5K3P9S传感器前置场景中SW Remosaic功能的实现流程。首先需在sensorxml中确认支持SW Remosaic类型,并集成remosaic相关库文件(libremosaic_wrapper.so等)。核心实现包括:初始化阶段调用InitFrontSamsungRemosaic();执行线程DeferFrontInitThread()读取校准数据;通过DoSamsungRemosaic()执行remosaic算法处理;最后在析构函数中调用DeinitFrontSamsungRem

1700

python局部变量与全局变量

python 局部变量与全局变量,global

weixin_42576837的博客 2722

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python中的全局变量和局部变量

Python中的全局变量和局部变量 全局变量是定义在函数外的变量 即从定义变量的位置到本源文件结束都有效。   局部变量是定义在函数内的变量 即在一个函数内部定义的变量,只在本函数范围内有效。 由下面的小案例来说明: # 全局变量,能被当前文件中所有python代码访问[先声明,后赋值] users = "admin" # 普通代码的使用 print("普通代码:",user..

qq_42219101的博客 521

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python之全局变量 和 局部变量

全局变量 和 局部变量 局部变量:在函数内部定义的变量,就是局部变量, 是函数内部的占位符,与全局变量可能重名但不同,函数运算结束后,局部变量被释放 为组合数据类型且未创建,等同于全局变量 全局变量:在函数外部定义的变量,或者在函数的内部,用global关键字定义的变量,就是全局变量,如果局部变量未真实创建,则是去全局变量 作用域: 作用的范围 局部变量的作用范围只限定在函数的内部; 全局变量的作用范围横跨整个文件; 变量的生命周期:内置 > 全局 > 局部 局部变量

一颗西柚的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python中局部变量和全局变量的区别_如何理解Python中的全局变量和局部变量呢

全局变量是在函数外部定义和声明的变量,我们需要在函数内部使用它们。# This function uses global variable sdef f():print s# Global scopes = "I love Geeksforgeeks"f()输出:我喜欢Geeksforgeeks如果在函数范围内定义了具有相同名称的变量,那么它将仅打印函数内给出的值而不是全局值。# This fun...

weixin_36048512的博客 1691

python之全局变量和局部变量

python之全局变量和局部变量 1、函数内出现的变量是局部变量,在全体程序中使用的是全局变量。 局部变量是函数内部的占位符,和全局变量可能重名但不同。 函数运算结束后,局部变量就不存在。 使用保留字global 可以将变量升级为全局变量。 在函数体内部使用global 可以引用外部的全局变量。 局部变量如果是组合数据类型且没有在函数内部创建,等同于全局变量。 如果一个组合数据类型在函数内部真实创建了,那么就是一个局部变量。 原因是:这里的数据传递的是以指针形式传递的。 2、使用规则: 基本数据类型,无论是

u011607898的博客 2001

在python中、关于全局变量和局部变量、以下_python中的全局变量和局部变量

1. 使用局部变量deffunc(x):print'x is', xx =2print'Changed local x to', xx =50func(x)print'x is still', xx is 50Changed local x to 2x is still 50在函数中,我们第一次使用x的值的时候,Python使用函数声明的形参的值。接下来,我们把值2赋给x。x是函数的局部变量。所以...

weixin_39526459的博客 1744

python中全局变量和局部变量的区别_Python全局变量与局部变量区别及用法分析

本文实例讲述了Python全局变量与局部变量区别及用法。分享给大家供大家参考,具体如下:对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了。定义:全局变量:在模块内、在所有函数的外面、在class外面局部变量:在函数内、在class的方法内下面来看看例子一、函数内部调用全局变量a="hello" #全局变量adef test():global a#调用全局...

weixin_39617006的博客 866

【从零学习python 】28. Python中的局部变量和全局变量

这篇文章介绍了Python中的局部变量和全局变量的概念和区别。局部变量是在函数内部定义的变量,其作用范围只限于函数内部,而全局变量则可以在所有函数中使用。文章详细解释了局部变量和全局变量的作用、使用方法以及如何修改全局变量的值。此外,还介绍了如何查看所有的全局变量和局部变量,并讨论了函数返回多个值的方式和对返回数据的拆包操作。最后,给出了一些相关的技术标签,方便读者更好地理解和学习Python中的变量作用域。

全栈若城,专注知识分享 8502

python全局变量和局部变量可以同名吗_Python global

Python global使用教程如果局部变量隐藏了全局变量,那么当我们再次访问全局变量时,程序会报错,会说找不到该变量,因为,该全局变量被局部变量隐藏了。Python变量重名详解语法varname = valuedef func():print(varname)varname = value2func()print(varname)说明首先,我们定义了一个全局变量 varname,接着,我们定义...

weixin_39866963的博客 5846
上一篇: pyhton入门,毫无基础的人如何入门Python ?
下一篇: 搞懂Python正则表达式,这一篇就够了
大模型应用场景
博客等级 码龄5年 7647粉丝 1350原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值