Python从零开始系列连载(18)——Python特色数据类型(函数)(中)
作者:王大伟
Python爱好者社区唯一小编
博客:https://ask.hellobi.com/blog/wangdawei
前言
前文传送门:
Python从零开始系列连载(2)——jupyter的常用操作
Python从零开始系列连载(3)——Python的基本数据类型(上)
Python从零开始系列连载(4)——Python的基本数据类型(下)
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允许同名变量的出现
让我们看个例子:
我们调用dayin_outer( )
这里打印的 a 的值是 2
注意的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从零开始免费直播课啦~
点击文末阅读原文立即报名
加微信直播管理员微信:xtechday(请注明:从零开始) ,随后管理员会将你拉入到交流群中。
Python爱好者社区历史文章大合集:
Python爱好者社区历史文章列表(每周append更新一次)
关注后在公众号内回复“课程”即可获取:
1.崔老师爬虫实战案例免费学习视频。
2.丘老师数据科学入门指导免费学习视频。
3.陈老师数据分析报告制作免费学习视频。
4.玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。
5.丘老师Python网络爬虫实战免费学习视频。