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 函数(二) 局部变量与全局变量相关推荐

  1. static作用(修饰函数、局部变量、全局变量)

    C语言:static作用(修饰函数.局部变量.全局变量) 一. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.   全局 ...

  2. C语言:static作用(修饰函数、局部变量、全局变量)

    C语言:static作用(修饰函数.局部变量.全局变量) 一. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.  全局变 ...

  3. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  4. 关于函数的局部变量与全局变量

    1,函数体外的变量,为全局变量,可以在函数体内调用 t = 1 def f1():print(t) f1() 输出结果 E:\software\work\python\python.exe " ...

  5. python之内置函数(二)与匿名函数、递归函数初识

    一.内置函数(二) 1.和数据结构相关(24) 列表和元祖(2) list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素). tuple:将一个可迭代对象转化成元组(如果是字典, ...

  6. static关键字(修饰函数、局部变量、全局变量)

    在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有 ...

  7. Python老男孩 day16 函数(六) 匿名函数

    https://www.cnblogs.com/linhaifeng/articles/6113086.html -------------------------------------- 九.匿名 ...

  8. C语言函数(函数嵌套、递归调用)+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+内部函数外部函数

    上一篇文章:编译预处理知识点梳理:宏定义+文件包含+条件编译 C语言函数(函数嵌套.递归调用--+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+ ...

  9. 6.2、C++的内联函数、函数重载、局部变量和全局变量

    内联函数 函数重载 局部变量和全局变量

最新文章

  1. 转载: 快速理解Docker - 容器级虚拟化解决方案
  2. LiveVideoStack线上分享第三季(十一):Xilinx视频解决方案
  3. 宝骏530中控屏怎么安装软件_试驾2020款宝骏530:大屏加六座,就这么直接
  4. uni-app 发送form-data参数的请求方式传值给后台
  5. 4位16色灰度图像处理
  6. .Net日志之nlog
  7. 以5个数据库为例,用Python实现数据的提取、转换和加载(ETL)
  8. ASP、JSP、PHP 三种技术比较
  9. 一份超详细的MySQL高性能优化实战总结
  10. ap sat_先准备SAT? SAT II?还是AP?没有哪一个比另一个更重要!
  11. 生成BAPI的ALE接口
  12. Live Performer for Mac(音频演奏录制软件)v1.0.1
  13. Atitit topic index Abt 150 toic [原]Atitit hi dev eff topic by use dsl sql coll op 提升开发效率sql ds
  14. 《3D数学基础:图形与游戏开发》
  15. ajaxsubmit php上传文件,使用ajaxSubmit方法实现多文件上传(异步)
  16. 物联网解决方案:智慧物流方案
  17. vs2013 c++小代码运行完了不退出的方法
  18. NVIDIA之Triton Inference Server环境部署安装
  19. Java并发 - 线程的生命周期
  20. 计算机里面怎么建新的文档,【2人回答】怎样在电脑新建中添加Word文档?-3D溜溜网...

热门文章

  1. 《游戏编程模式》读书笔记之一
  2. bzoj4514[Sdoi2016]数字配对
  3. android 提高性能点
  4. oracle em命令行配置及界面按钮乱码问题解决方法
  5. linux 操作系统安装配置vnc
  6. C# 检测dll的新版本号方法
  7. 手机进水的正确处理方法?
  8. IBM技术大会2005
  9. why do not do consultant any more?
  10. number of databases available at XJTLU