你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
前文传送门:
Python从零开始系列连载(1)——安装环境
Python从零开始系列连载(2)——jupyter的常用操作(上)
Python从零开始系列连载(3)——jupyter的常用操作(中)
Python从零开始系列连载(4)——jupyter的常用操作(下)
Python从零开始系列连载(5)——Python的基本数据类型(上)
Python从零开始系列连载(6)——Python的基本数据类型(中)
Python从零开始系列连载(7)——Python的基本数据类型(中二)
Python从零开始系列连载(8)——Python的基本数据类型(下)
Python从零开始系列连载(9)——Python的基本运算和表达式(上)
Python从零开始系列连载(10)——Python的基本运算和表达式(中)
Python从零开始系列连载(11)——Python的基本运算和表达式(中二)
Python从零开始系列连载(12)——Python的基本运算和表达式(下)
Python从零开始系列连载(13)——Python程序的基本控制流程(上)
Python从零开始系列连载(14)——Python程序的基本控制流程(中)
Python从零开始系列连载(15)——Python程序的基本控制流程(中二)
Python从零开始系列连载(16)——Python程序的基本控制流程(下)
Python从零开始系列连载(17)——Python特色数据类型(列表)(上)
Python从零开始系列连载(18)——Python特色数据类型(列表)(中)
Python从零开始系列连载(19)——Python特色数据类型(列表)(下)
Python从零开始系列连载(20)——Python特色数据类型(元组)(上)
Python从零开始系列连载(21)——Python特色数据类型(元组)(下)
Python从零开始系列连载(22)——Python特色数据类型(字典)(上)
Python从零开始系列连载(23)——Python特色数据类型(字典)(下)
Python从零开始系列连载(24)——Python特色数据类型(集合)(上)
Python从零开始系列连载(25)——Python特色数据类型(集合)(下)
Python从零开始系列连载(26)——Python特色数据类型(函数)(上)
之前说了好多,都是有返回值的函数,那有没有没返回值的函数呢?
这个可以有!
变量的作用域就是在程序中能对这个变量操作的区域范围
有点像初高中学的函数的定义域
Python允许同名变量的出现
让我们看个例子:
我们调用dayin_outer( )
这里打印的 a 的值是 1
注意的dayin_inner( ) 函数只是定义了,并没有调用,所以不会运行这个dayin_inner( )的函数体
我们稍微修改一下:
这样就可以了
注意到,a变量分别有三次赋值,这里的赋值不是覆盖了,因为他们三个a是在不同的位置
第一个a是在函数外面,我们称之为全局变量(即它的作用域是全局的)
比如我们改一下程序:
这时候,外面的a就打印出来了!
当然,与之相对的,第二个和第三个a就成为局部变量
而且这个dayin_inner( ) 函数是被嵌套在 dayin_outer( ) 中的
值为 1 的 a 的作用范围是dayin_outer( )外层函数中
值为 2 的 a 的作用范围是dayin_outer( )内层函数中
当我们要使用变量时候,现在最近的区域搜索
我们修改一下程序:
当我们把 a = 1 注释掉
则外层函数打印 a 的时候,取的全局变量
因为内层函数的作用域只在内层函数中,不能延伸到外层函数
我们再改一下程序:
把内层函数里的 a 注释掉
则内层函数使用的 a 是外层函数定义的 a
因为,外层函数距离内层函数比全局变量距离内层函数更近
如果外层函数没有定义 a ,则会去取全局变量
是不是又想起了俄罗斯套娃。。。
注意:不要将变量的作用域和变量重复赋值覆盖搞混
我们看个例子:
注意这里全局变量只有一个 a
他的值是 4,因为 0 被覆盖了
今天作业是自己跟着操作一遍~
自己不敲代码永远学不会写代码
下课
人生苦短,我选Python
未完待续,连载中......
现在还坚持再看连载学习的你们真的很棒棒!
入门部分已经学完大部分啦!加油
下一篇:Python从零开始系列连载(28)——Python特色数据类型(函数)(下)
oceany
ID王大伟
ID王大伟 回复 oceany
xyl1221
ID王大伟 回复 xyl1221
大胖龙!
ID王大伟 回复 大胖龙!
要回复文章请先登录或注册