Python老男孩 day15 函数(二) 局部变量与全局变量
https://www.cnblogs.com/linhaifeng/articles/6113086.html
——————————————————————————————————————
五、局部变量与全局变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
name='lhf'def change_name():print('我的名字',name)change_name()
运行结果:
我的名字 lhf
def change_name():name='帅了一笔'print('我的名字',name)change_name() print(name)
运行结果:
我的名字 帅了一笔
lhf
def change_name():global namename='帅了一笔'print('我的名字',name)change_name() print(name)
运行结果:
我的名字 帅了一笔
帅了一笔
NAME = "产品经理"def yangjian():global NAME # 已经声明,NAME就是全局的的那个变量print('我要搞', NAME)NAME = "小东北" # 修改 全局的变量print('我要搞', NAME)yangjian()
运行结果:
我要搞 产品经理
我要搞 小东北
#如果函数的内容无global关键字
-有声明局部变量
NAME = ["产品经理","廖波湿"] def qupengfei():NAME = "自己"print('我要搞', NAME) qupengfei()
运行结果:
我要搞 自己
-无声明局部变量
NAME = ["产品经理", "廖波湿"]def qupengfei():NAME.append('XXOO')print('我要搞', NAME)qupengfei()
运行结果:
我要搞 ['产品经理', '廖波湿', 'XXOO']
#如果函数中有global关键字
-有声明局部变量
NAME = ["产品经理","廖波湿"] def qupengfei():NAME = "自己"global NAMEprint('我要搞', NAME) qupengfei()
运行结果:
报错
SyntaxError: name 'NAME' is assigned to before global declaration
-无声明局部变量
NAME = ["产品经理","廖波湿"] def qupengfei():global NAMENAME = ["阿毛"]NAME.append('XXOO')print('我要搞', NAME) qupengfei()
运行结果:
我要搞 ['阿毛', 'XXOO']
*** 全局变量变量名大写
*** 局部变量变量名小写
#优先读取局部变量,若无则只能读取全局变量,无法对全局变量重新赋值
#但是对于可变类型,可以对内部元素进行操作
#如果函数中有global关键字,变量本质上就是全局变量,可读取可赋值 NAME='fff'
NAME = '海风'def huangwei():name = "黄伟"print(name)def liuyang():name = "刘洋"print(name)def nulige():name = '沪指花'print(name)print(name)nulige()liuyang()print(name)huangwei()
运行结果:
黄伟
刘洋
刘洋
沪指花
黄伟
解题思路:
name = "刚娘"def weihou():name = "陈卓"def weiweihou():global name #获取的是全局的name,并没有改变weihou()内的name = "陈卓"name = "冷静"weiweihou()print(name) #所以输出 陈卓print(name) weihou() print(name)
运行结果:
刚娘
陈卓
冷静
name = "刚娘"def weihou():name = "陈卓"def weiweihou():nonlocal name # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止name = "冷静"weiweihou()print(name)print(name) weihou() print(name)
运行结果:
刚娘
冷静
刚娘
转载于:https://www.cnblogs.com/zhuhemin/p/9099571.html
Python老男孩 day15 函数(二) 局部变量与全局变量相关推荐
- static作用(修饰函数、局部变量、全局变量)
C语言:static作用(修饰函数.局部变量.全局变量) 一. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量. 全局 ...
- C语言:static作用(修饰函数、局部变量、全局变量)
C语言:static作用(修饰函数.局部变量.全局变量) 一. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量. 全局变 ...
- Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...
- 关于函数的局部变量与全局变量
1,函数体外的变量,为全局变量,可以在函数体内调用 t = 1 def f1():print(t) f1() 输出结果 E:\software\work\python\python.exe " ...
- python之内置函数(二)与匿名函数、递归函数初识
一.内置函数(二) 1.和数据结构相关(24) 列表和元祖(2) list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素). tuple:将一个可迭代对象转化成元组(如果是字典, ...
- static关键字(修饰函数、局部变量、全局变量)
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有 ...
- Python老男孩 day16 函数(六) 匿名函数
https://www.cnblogs.com/linhaifeng/articles/6113086.html -------------------------------------- 九.匿名 ...
- C语言函数(函数嵌套、递归调用)+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+内部函数外部函数
上一篇文章:编译预处理知识点梳理:宏定义+文件包含+条件编译 C语言函数(函数嵌套.递归调用--+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+ ...
- 6.2、C++的内联函数、函数重载、局部变量和全局变量
内联函数 函数重载 局部变量和全局变量
最新文章
- 转载: 快速理解Docker - 容器级虚拟化解决方案
- LiveVideoStack线上分享第三季(十一):Xilinx视频解决方案
- 宝骏530中控屏怎么安装软件_试驾2020款宝骏530:大屏加六座,就这么直接
- uni-app 发送form-data参数的请求方式传值给后台
- 4位16色灰度图像处理
- .Net日志之nlog
- 以5个数据库为例,用Python实现数据的提取、转换和加载(ETL)
- ASP、JSP、PHP 三种技术比较
- 一份超详细的MySQL高性能优化实战总结
- ap sat_先准备SAT? SAT II?还是AP?没有哪一个比另一个更重要!
- 生成BAPI的ALE接口
- Live Performer for Mac(音频演奏录制软件)v1.0.1
- Atitit topic index Abt 150 toic [原]Atitit hi dev eff topic by use dsl sql coll op 提升开发效率sql ds
- 《3D数学基础:图形与游戏开发》
- ajaxsubmit php上传文件,使用ajaxSubmit方法实现多文件上传(异步)
- 物联网解决方案:智慧物流方案
- vs2013 c++小代码运行完了不退出的方法
- NVIDIA之Triton Inference Server环境部署安装
- Java并发 - 线程的生命周期
- 计算机里面怎么建新的文档,【2人回答】怎样在电脑新建中添加Word文档?-3D溜溜网...