python强势来袭-13-函数中的那些变量

银河麒麟服务器操作系统V10SP3 U盘安装中“基础软件仓库错误”的排查与修复指南 本文针对在无网络环境下使用U盘安装银河麒麟服务器操作系统V10SP3时,遇到的“基础软件仓库错误”问题,提供了详细的排查与修复指南。核心解决方案是通过进入救援模式,使用lsblk命令确定U盘实际设备路径,并在系统引导时手动添加inst.repo内核参数来指定安装源,从而绕过安装程序的自动探测故障,确保安装流程顺利进行。 阅读详情
  1. 函数中的变量
    在函数中,我们可以看到也进行了变量的使用,那函数中的变量和函数外的变量到底有什么区别呢?

1. 全局变量的定义
声明在函数外面的变量,可以在文档的任意地方使用这个变量,我们称为全局变量
关于全局变量,使用方式如下

# 定义在函数外部的变量
name = "tom"
# 直接使用全局变量
print(tom)
# if代码块中使用全局变量
print(tom)
# 函数中使用全局变量
def test():
    print(tom)   # tom

2. 函数中使用全局变量
上面代码的输出结果,都是tom,表示全局变量一旦声明赋值,在任何地方都可以使用
但是如果我们要在函数中修改变量的值,就会出现如下的问题

name = "tom"
def test():
    name = "jerry"
    print(name)   # jerry
test()
print (name)   # tom
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# 运行上述程序,我们会发现,即时函数执行了,在函数中name输出jerry
# 但是,在函数外部,我们重新打印name的值,发现name的值还是tom
# 
# 此时:函数中的name是局部变量,函数外部的name是全局变量
# 如此诡异的情况,也是python为了避免出现开发人员在操作函数的过程中
# 如果不明确是否使用全局变量的情况下,无意中覆盖全局变量的值
#
# 所以,在函数中使用全局变量,必须显示的声明使用哪个全局变量
# 语法是:global 变量名
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
name = "tom"
def test():
    global name
    name = "jerry"
    print(name)  # jerry
test()
print(name)  # jerry

3. 函数中的变量隔离
如果函数中没有通过global引入全局变量,但是在函数中又使用了和全局变量相同的名称
此时就会出现问题

name = "tom"
def test():
    # 这里只是想使用一下全局变量的值
    print(name)   
    # n行代码之后,又声明了局部变量name
    # 此时一旦声明了局部变量,上面打印的代码就会出现错误
    name = "jerry" 

test()
执行结果:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in test
UnboundLocalError: local variable 'name' referenced before assignment

上面的错误,主要是变量提升引起的错误,首先描述一下错误出现的条件
1.如果函数中没有声明和全局变量名称一致的局部变量,函数中直接使用全局 变量的值,不会出现错误
2.如果函数中,一旦在任意位置定义了和全局变量名称一致的局部变量,函数中 在局部变量声明定义之前使用这个名称的变量,就会出现上述错误

这是因为,在函数中,一旦声明变量并且赋值一个局部变量,函数中又没有通过
global引入同名的全局变量,此时在函数中只会存在局部变量~不允许使用全局变量
此时如果在同名的局部变量声明赋值之前使用这个变量,就会出现错误。

4. 局部变量
声明在函数内部的变量,只能在函数内部使用,函数执行结束这个变量就会被回收,我们称为局部变量。局部变量只是在函数中可以使用,出了函数这个变量就不认识了

def test():
    name = "tom" # 这是一个test函数中的局部变量

test()
print(name) 
# 执行结果
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'name' is not defined # 出现错误,name没有定义

通常情况下,函数内部声明赋值的变量和函数的参数都会当成局部变量进行处理

全局变量和局部变量: 几乎所有的编程语言中都有全局变量和局部变量的区分,同时我们在开发过程中,也需要尽量避免频繁使用全局变量
原因之一全局变量一经使用就常驻内存,如果全局变量中数据过于庞大就会导致内存溢出程序崩溃的情况
原因之二是全局变量在使用的过程中容易造成变量的全局污染,因为在项目开发过程中通常是多个人协同开发多个Python文件然后整合到一起,此时就有可能会因为全局变量重名造成变量的值覆盖的情况出现。

如果你看到了这里,觉得文章写得不错可以加个关注!如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。

最后针对Android程序员,除了以上内容,我自己整理了一套最新的python系统资料可以免费送给大家,从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。需要这些资料的朋友,可以进python学习交流群:851211580免费领取 。

希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!后续还会更新技术干货,谢谢您的支持!

数据仓库数据质量监控和处理方法最佳实践 指的是检查数据是否存在反常或者错误的情况,例如数值反常地过大或者过小,或者超过记录的波动值,对应的规则包括数值波动检查,最大值、最小值检查,跨表准确性等。指的是检查数据是否存在缺失的情况,这里的缺失可以是整个数据集的记录缺失,也可以是某个字段记录的缺失,对应的规则包括空值检查,表总行数检查。指的是检查数据是否符合规范,是否按照规定的格式存储,对应的规则包括正则表达式检查,字段长度检查,枚举集合检查,数值范围等。指的是检查哪些数据是重复数据或者数据的哪些属性是重复的,对应的规则例如主键唯一性检查。 阅读详情

相关推荐

一次HTTP完整得请求过程

一次HTTP完整的请求过程 一,大致流程: 根据域名和DNS解析到服务器的IP地址(DNS+CDN) 通过ARP协议获得IP地址对应的物理机器得MAC地址 浏览器对服务器发起三次握手 建立TCP连接后发起HTTP请求报文 服务器响应HTTP请求,将响应报文返回浏览器 短连接情况下,请求结束通过TCP四次挥手关闭连接,长连接在没有访问服务器得若干时间后,进行连接关闭 浏览器得到响应信...

qq_40760617的博客 342

【Python基础入门学习】Python函数与变量的使用

def 函数名():函数封装的代码……def是英文define(定义)的缩写函数名称应该能够表达函数封装代码的功能(一般用动词),方便后续的调用函数名称的命名应该符合标识符的命名规则○ 可以由字母、下划线和数字组成○ 不能以数字开头○ 不能与关键字重名。

Au__gust的博客 1964

别再只调颜色阈值了!优化K210色块追踪性能的5个关键参数与实战技巧

本文深入探讨了K210色块追踪性能优化的五大核心策略,包括图像预处理参数精细调控、find_blobs参数进阶配置、运动控制算法升级、硬件时序优化以及可视化调试系统构建。通过实战技巧和参数调整方法,帮助开发者提升K210在色块追踪项目中的识别稳定性和响应速度,适用于云台追踪等应用场景。

weixin_42531588的博客 225

python之函数(参数,匿名函数,局部变量和全局变量)

对于函数参数,这个地方,刚开始的时候,我根本没有理解到。我也是理解了很久,后面理解了,但是在使用过程中,其实也在出错。所以在这里就专门的总结一下。以上就是平时使用中,容易混淆的地方。这次在这里专门总结出来,目的就是加深记忆。前言。

weixin_45272371的博客 2422

Unity 实现动态网格地图生成与交互组件

本文详细介绍了在Unity中实现动态网格地图生成与交互组件的完整方案。从基础网格单元实现到高级交互功能,涵盖网格生成器核心逻辑、事件驱动架构、性能优化技巧以及六边形网格等特殊实现。特别适合游戏开发者学习如何构建战棋、模拟经营类游戏的可交互地图系统,提升开发效率与用户体验。

weixin_29015483的博客 1068

片上眼图(Eye-opening monitor)

当它们值不同的时候error counter +1,通过统计RX到的码元个数、error counter,可以获得offset sampler上下左右不停的调整位置时的一个误码率(BER),通过这个误码率去描绘出眼图。如上图所示,eye-scan RX端 offset sampler独立且并行的和使用CDR sample的采样电路一起跑,offset-sampler可以任意调整水平(time)和垂直(voltage)方向的偏移(如下图所示),在一个UI内产生一个全新的sample点。

沈土豪的书屋 4414

python函数(变量,参数)

函数的变量 1,全局变量 ———定义在最外层的变量,对于所有的内函数都能调用 2,局部变量 ———定义在函数内的变量叫做局部变量,在函数外是不能访问局部变量 注:全局变量不能直接在函数内部进行操作,如果需要在函数内部操作全局变量,需要调用global关键字 例: age = 18 def show(name): #如果需要在函数内部操作全局变量的话,需要调用global关键字 global age gender = "男" #在函数内部定义的局部变量 print(name) print(

moon_colder的博客 1493

S32K144 LPI2C Master/Slave模式配置与多设备通信实战

本文详细介绍了NXP S32K144微控制器中LPI2C模块的主从模式配置与多设备通信实战。内容涵盖硬件连接、引脚配置、主从模式深度设置、中断/DMA应用,并通过AT24C16 EEPROM、SHT30传感器等实例,解析了多设备通信中的地址切换、时序控制及常见问题排查技巧,帮助开发者高效实现基于LPI2C的稳定通信。

weixin_29158047的博客 269

Python中的函数与变量讲解

不知道大家在学习Python的时候,有没有发现一个问题,函数里边的变量和脚本里边的变量好像是无关的。本文今天要讲的就是Python中的函数与变量,如果大家对于这个方面的内容有困惑,不妨来一起学习一下这个Python的基础内容。

2201_75362610的博客 261

二、Creo模型的功能函数 例如:模型(元件)的干涉........

【代码】模型(元件)的干涉。

行为艺术家Zzz的博客 613

使用PostgreSQL构建高可用数据库集群

在现代企业级应用中,数据库的高可用性已成为业务连续性的核心要求。PostgreSQL作为一款功能强大的开源关系型数据库,其高可用架构的设计直接影响着系统的稳定性和可靠性。

九天的专栏 1258

一文深度解析python中的变量(非常详细!)

本文要求对C语言有一定了解,从一些底层机制深入探讨了python的变量、对象、函数参数、拷贝等概念,并综合了大量其他人的讲解,力图透彻讲解全面的知识,一劳永逸解决读者在这方面的困扰

weixin_73208047的博客 3238

无人船 | 基于ROS的轻量级多无人艇自主导航仿真框架

无人水面艇USV是海上自主无人系统的关键组成部分,在民用、军用领域应用广泛,例如海上救援、水质测量、扫雷反潜等,因此对USV导航算法的研究具有重要意义。为了便于进行USV相关算法的验证与部署,本文介绍的这套基于ROS的多无人艇的自主导航仿真平台,轻量化地实现了建图、规划、控制等多种功能,同时自研框架保证了功能的高度可拓展和可定制

FRIGIDWINTER的博客 8001

day10 局部变量 全局变量 作用域前奏

规则命名以及基本介绍 1 name="LHF" # 顶头写的全局都可以调用的就是全局变量,命名规则要求大写全局变量 2 def chang_name(): 3 # global name # 在函数内定义全局变量,之后函数内调用改变就会全局都改变,如果要用到此命令一定要在函数最前面用,不然会报错 ...

weixin_34138139的博客 118

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python哪里学-python在哪学

学习Python的这几天来,觉得Python还是比较简单,容易上手的,就基本语法而言,但是有些高级特性掌握起来还是有些难度,需要时间去消化。Python给我最大的印象就是简洁,这也正是我为什么要从Java转行Python的原因之一。一、Python简介ython实现强势逆袭,而且我相信,随着时间的推移,国内Python语言未来前景也是一片向好。Python的特点是优雅简单,易学易用(虽然我感觉还是...

weixin_37988176的博客 149

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

在哪里学python-python在哪学

学习Python的这几天来,觉得Python还是比较简单,容易上手的,就基本语法而言,但是有些高级特性掌握起来还是有些难度,需要时间去消化。Python给我最大的印象就是简洁,这也正是我为什么要从Java转行Python的原因之一。一、Python简介ython实现强势逆袭,而且我相信,随着时间的推移,国内Python语言未来前景也是一片向好。Python的特点是优雅简单,易学易用(虽然我感觉还是...

q6q6q的专栏 351

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python上哪学_python在哪学

学习Python的这几天来,觉得Python还是比较简单,容易上手的,就基本语法而言,但是有些高级特性掌握起来还是有些难度,需要时间去消化。Python给我最大的印象就是简洁,这也正是我为什么要从Java转行Python的原因之一。一、Python简介ython实现强势逆袭,而且我相信,随着时间的推移,国内Python语言未来前景也是一片向好。Python的特点是优雅简单,易学易用(虽然我感觉还是...

weixin_39836943的博客 66

python从什么开始学_python从什么开始学

学习Python的这几天来,觉得Python还是比较简单,容易上手的,就基本语法而言,但是有些高级特性掌握起来还是有些难度,需要时间去消化。Python给我最大的印象就是简洁,这也正是我为什么要从Java转行Python的原因之一。一、Python简介ython实现强势逆袭,而且我相信,随着时间的推移,国内Python语言未来前景也是一片向好。Python的特点是优雅简单,易学易用(虽然我感觉还是...

weixin_39736547的博客 73

看完本文若不能让你学通Python,我愿此生退出编程界+python交流学习群

零基础小白如何学习Python? 今天我给大家分享一些Python的视频教程和基本概念图,以及学习路上最有效的学习方法。 学习Python的前景未来 1,Python前景发展 Python语言中有一个特点就是没有什么特别强势的,但是它可以使用非常多的范畴,并效率高得可怕,Python使用范畴非常的多,现在据了解国内应该没有太多的人学习Python,而且Python的招聘和薪资确实是非常的高,现在有许多大型互联网公司都是高薪聘请Python开发人员如:腾讯,阿里巴巴,百度,搜狐,微软,谷歌,华为 2

MUMUBIANCHENG的博客 564

python异常处理_看完本文若不能让你学通Python,我愿退出编程界

零基础小白如何学习Python?今天我诶大家分享一些Python的视频教程和基本概念图,以及学习路上最有效的学习方法。学习Python的前景未来1,Python前景发展Python语言中有一个特点就是没有什么特别强势的,但是它可以使用非常多的范畴,并效率搞得可怕,Python使用范畴非常的多,现在据了解国内应该没有太多的人学习Python,而且Python的招聘和薪资确实是非常的高,现在有许多大型...

weixin_39624461的博客 91

华为python入门_看完本文若不能让你学通Python,我愿退出编程界

零基础小白如何学习Python?今天我诶大家分享一些Python的视频教程和基本概念图,以及学习路上最有效的学习方法。学习Python的前景未来1,Python前景发展Python语言中有一个特点就是没有什么特别强势的,但是它可以使用非常多的范畴,并效率搞得可怕,Python使用范畴非常的多,现在据了解国内应该没有太多的人学习Python,而且Python的招聘和薪资确实是非常的高,现在有许多大型...

weixin_32768455的博客 482

python求圆的面积视频_看完本文若不能让你学通Python,我愿此生退出编程界

零基础小白如何学习Python?今天我诶大家分享一些Python的视频教程和基本概念图,以及学习路上最有效的学习方法。学习Python的前景未来1,Python前景发展Python语言中有一个特点就是没有什么特别强势的,但是它可以使用非常多的范畴,并效率搞得可怕,Python使用范畴非常的多,现在据了解国内应该没有太多的人学习Python,而且Python的招聘和薪资确实是非常的高,现在有许多大型...

weixin_33673142的博客 131

看完本文若未能让你学通“Python”,我倒立吃(shi)!

0基础小白怎么学Python? 今天给大家分享一些学习Python的基本概念图,入门书籍、视频教程以及学习路上最有效的方法。 学习Python的未来前景 1、前景发展 Python言语有一个特点就是没有什么特别强势的,可是它能够使用都非常的多范畴,并且效率高的可怕,Python的使用范畴非常多,现在据了解国内应该是没有太多人学习Python,而Python的招聘和薪酬确实非常的高,现在有许多大型企业如腾讯,阿里,百度,搜狐,微软,谷歌,华为这些大型互联网公司都是用高薪延聘Python开发人员。 ..

程序员-小枫的博客 1152

python求圆的面积视频_看完本文若不能让你学通Python,我愿退出编程界

零基础小白如何学习Python?今天我诶大家分享一些Python的视频教程和基本概念图,以及学习路上最有效的学习方法。学习Python的前景未来1,Python前景发展Python语言中有一个特点就是没有什么特别强势的,但是它可以使用非常多的范畴,并效率搞得可怕,Python使用范畴非常的多,现在据了解国内应该没有太多的人学习Python,而且Python的招聘和薪资确实是非常的高,现在有许多大型...

weixin_39746382的博客 108

python异常处理_看完本文若不能让你学通Python,我愿此生退出编程界

零基础小白如何学习Python?今天我诶大家分享一些Python的视频教程和基本概念图,以及学习路上最有效的学习方法。学习Python的前景未来1,Python前景发展Python语言中有一个特点就是没有什么特别强势的,但是它可以使用非常多的范畴,并效率搞得可怕,Python使用范畴非常的多,现在据了解国内应该没有太多的人学习Python,而且Python的招聘和薪资确实是非常的高,现在有许多大型...

weixin_39756481的博客 86

看完本文若不能让你学通Python,我愿此生退出编程界

零基础小白如何学习Python? 今天我诶大家分享一些Python的视频教程和基本概念图,以及学习路上最有效的学习方法。 学习Python的前景未来 1,Python前景发展 Python语言中有一个特点就是没有什么特别强势的,但是它可以使用非常多的范畴,并效率搞得可怕,Python使用范畴非常的多,现在据了解国内应该没有太多的人学习Python,而且Python的招聘和薪资确实是非常的高,现在有许多大型互联网公司都是高薪聘请Python开发人员如:腾讯,阿里巴巴,百度,搜狐,微软,谷歌,华为 2,Pyth

ITxiaodaren的博客 220
上一篇: python强势来袭-12-函数-说的就是函数
下一篇: python强势来袭-14-函数中的参数-送礼开始
python-花猫
博客等级 码龄7年 105粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值