Python从零开始系列连载(19)——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从零开始系列连载(18)——Python特色数据类型(函数)(中)
匿名函数
匿名函数,匿名指的是我们不知道这个函数的名字
当我们使用时候,用lambda来声明匿名函数
这种匿名函数是没有名字的,是临时使用的
格式:
函数对象名 = lambda 形式参数:表达式
我们演示一下看看:
这里用匿名函数代替了add()函数的功能
x,y是形式参数
x+y是函数体内容
匿名函数也可以有条件分支语句:
返回x和y中较大值
小建议:当函数较为复杂时,不建议匿名函数,不太好写而且结构难理解
函数的递归
递归指的是一种直接或者间接调用自身的算法
它的本质是将问题分解为同类型的子问题
还记得高中学数列时候有公式是这样的么:
当我们去求a(n)时候,先要去求a(n-1),然后为了求a(n-1),就先要求a(n-2),以此类推
直到先要求a(1)
然后我们求出a(1),就能返回求出a(2)直到求出a(n)
----------------------end---------------------------
这个函数可以这样写:
有个经典的Fibonacci数列问题
讲的是这样一个故事:
1201年,意大利数学家Fibonacci(斐波那契)发现了以他自己的名字命名的数列---Fibonacci数列。
他是在研究兔子的生长、繁殖的规律中发现这一数列的。
他对数列的研究是从一对刚刚出生的小兔子(雌雄一对)开始计算在n个月后将会有多少只兔子
他做了如下的假设:
1、新出生的小兔子在一个月的时间里发育为成年兔子;
2、每对成年兔子每月繁殖一对小兔子(雌雄一对);
3、兔子没有死亡发生。
接下来我们来看会产生一组什么样的数呢?
我们用Fn代表n个月后兔子的对数。
因为从一对新生的兔子开始,所以,F0=1,F1=1。
这一对兔子在第二个月末生出另一对小兔子,从而F2=1+1=2。
在第三个月末,第一对兔子将生下又一对小兔子,所以F3=2+1=3。
我们用如下的表格表示前10个月每个月初兔子的数量:
由此可知,从第一个月开始以后每个月的兔子总数是:
1,1,2,3,5,8,13,21,34,55,89,144,233…
这就是著名的Fibonacci(斐波那契)数列
这个数列具有这样的特点:前两项均为1,从第三项起,每一项都是其前两项的和
即F0=F1=1,当n>1时,Fn+2=Fn+1+Fn。
我们写成函数是这样的:
使用到了递归的方法!
今天作业是自己跟着操作一遍~
自己不敲代码永远学不会写代码
下课
人生苦短,我选Python
未完待续,连载中......
现在还坚持再看连载学习的你们真的很棒棒!
入门部分已经学完大部分啦!加油
接下来是福利时间!!!
连载看的不过瘾?快来听小编的Python从零开始免费直播课啦~
点击文末阅读原文立即报名
加微信直播管理员微信:xtechday(请注明:从零开始) ,随后管理员会将你拉入到交流群中。
Python爱好者社区历史文章大合集:
Python爱好者社区历史文章列表(每周append更新一次)
关注后在公众号内回复“课程”即可获取:
1.崔老师爬虫实战案例免费学习视频。
2.丘老师数据科学入门指导免费学习视频。
3.陈老师数据分析报告制作免费学习视频。
4.玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。
5.丘老师Python网络爬虫实战免费学习视频。