游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

测试开发之函数进阶递归函数

  目录
  一、往期回顾1。生成器代码详解2。生成器的三个方法
  二、递归函数1。什么是递归函数2。递归函数调用原理图3。递归边界4。通过递归函数实现的任意数的阶乘5。这个递归函数的递归临界点在哪?6。斐波那契数列
  三、系列推荐1。生成器代码详解defgen():foriinrange(5):jyieldiprint(j)send:与生成器进行交互ggen()print(next(g))print(next(g))
  第一个print(next(g))打印的0,就是生成器生成的元素。第二个print(next(g))打印的1也是生成器生成的元素,None是print(j)打印的j。
  通过生成器获取元素的时候,首先生成器进去的话,当调用生成器获取里面的值,它会从上往下走,走到jyieldi这里,把yield这里的i这个值返回出来,调用完gen()返回一个生成器g。
  通过这个生成器next(g)去拿值的时候,然后它从上往下执行代码,走到jyieldi这里,yield相当于把i,通过yield返回出去。
  从生成器里面返回出来,就生成一个数据。生成这个i,到第一个print(next(g))这里,打印的就是i。
  第二个print(next(g)),再用next()调用生成器的时候,那么这个生成器会从yield之后继续往下执行。
  通过next()去触发生成器的时候,yield之后是没有内容的,j接收的就是空的,所以打印j的时候,打印出来的是个None。2。生成器的三个方法生成器的三个方法:sendclosethrowdefgen():foriinrange(5):jyieldiprint(j)send:与生成器进行交互ggen()print(g。send(100))print(next(g))print(next(g))
  运行后报错:
  生成器的send()方法,它运行的时候会从上一个yield结束的地方来进行运行。
  在这里只创建了gen()这个生成器,这个生成器还没有生成过任何数据,这个时候生成器就暂停在函数最开始的地方defgen():这里。
  这里send(100)这个值进去的话,在这里运行,直接运行foriinrange(5):这个语句,send(100)生成进去的这个值没有地方接收,所以报错了。
  send()必须在调用了一次next()之后才调用。可以和next()一样,去获取生成器里面的内容。2。1next()获取生成器里面的内容:生成器的三个方法:sendclosethrowdefgen():foriinrange(5):jyieldiprint(j)send:与生成器进行交互ggen()print(next(g))print(next(g))print(g。send(100))
  2。2send()在调用了一次next()之后调用,获取生成器里面的内容:生成器的三个方法:sendclosethrowdefgen():foriinrange(5):jyieldiprint(j)send:与生成器进行交互ggen()print(next(g))print(g。send(100))print(next(g))
  yield只能在函数里面用。yield关键字是用在创建生成器的时候,只要函数里面使用了yield关键字,在调用函数的时候,函数不会立马被执行。
  因为这个函数不是简单的函数了,它是个生成器。
  在函数外面,是没办法用yield关键字的。
  2。3close():关闭生成器defgen():foriinrange(5):jyieldiprint(j)yield100send:与生成器进行交互ggen()print(next(g))print(next(g))print(g。send(100))close:关闭生成器g。close()print(next(g))
  2。4throw()方法:在生成器内部主动引发一个异常。参数:1。异常类型。2。异常信息。
  这个方法可以接收2个参数,第一个参数:Exception异常类型。第二个参数:传入异常的信息。
  Exception报错:
  g。throw(Exception,Methodthrowcalled!)
  ValueError:
  g。throw(ValueError,清菡,大事不好,报错了,嘤嘤嘤)
  二、递归函数1。什么是递归函数
  在函数中调用函数自身,我们把这样的函数叫做递归函数。2。递归函数调用原理图
  递归函数调用自身3。递归边界
  递归边界:退出递归的终止条件。deffunc():print(99999)func()func()
  在外面调用函数,直接陷入一个死循环。在函数内部调用func()这个函数,又到deffunc():这里来执行,然后print(99999),又func()调用。
  不断得自身调用,这样就造成了死循环。
  Pycharm有个检测机制:当它内部检测到这个是个无限递归,没有递归临界点的一个递归函数,那么这个时候,它递归多少次之后,会自动给终止了。
  使用递归函数的时候,一定要注意一个点:就是一定要设置递归的边界。递归的边界就是递归函数的终止条件。
  如果你不设置递归边界,那么你定义的递归函数就是个死循环,一直无限得调用自身。4。通过递归函数实现的任意数的阶乘4。1什么是阶乘?
  1的阶乘12的阶乘123的阶乘1234的阶乘1234
  递归能实现的,通过循环都能实现。
  Python中递归用得不多,不太建议使用递归,因为递归不太好用,用递归还不如用循环。4。2怎么去算阶乘呢?
  定义个函数,算任意数的阶乘。传1,就算1的阶乘,传10就算10的阶乘。
  可以这样做:
  首先要判断下它传进来的这个参数是不是等于1,如果是等于1的话,就直接给它return返回出去。然后,如果它不等于1的话,就返回returnn(n1)(n2)。
  n传进来是1,那应该返回1;如果传的是2,应该返回returnn(n1)。
  如果在这里用递归函数,调用func(1)。那么这个时候,这个func(1)调用递归函数。
  这个函数返回的是什么?
  调用这段代码:ifn1:return1
  返回的是个1。
  将代码修改成如下:deffun(n):ifn1:return1else:returnnfun(n1)fun(3)
  如果是fun(3),3传进来:deffun(n):ifn1:return1
  肯定是不成立的。
  else后面的代码returnnfun(n1)。
  这里的n是个3,fun(n1)就是fun(2),那么就是3fun(2)。
  这个时候会再次调用自身这个函数:
  这个时候n是什么?
  fun(2)的时候n是个2,就是32fun(1)。fun(1)再执行下,出来的结果是个1。那这里就是个1,就是321。
  等于3的时候,返回的结果就是321。4。3改成fun(4)看看:
  首先4进来,n等于4,fun(n1)就是fun(3)。调用fun(3)就相当于再次调用fun(n),就是43fun(2)。
  再次调用fun(2),再进来,前面returnnfun(n1)这一截得到2,fun(31)得到2,所以最终得到432fun(1)。
  fun(1)调用,结果出来就是个1。就是4321。deffun(n):ifn1:return1else:returnnfun(n1)4321fun(4)5。这个递归函数的递归临界点在哪?ifn1:return1
  当n1的时候就不会调用自身了。当满足某个条件,不再调用自身,那么这个就被称为递归临界点。
  例如改成n1ifn1:return1
  这个时候,这个函数的递归临界点在哪?
  这个递归临界点就是1。deffun(n):ifn1:递归临界点:当达到递归临界点的时候,就不再调用自身函数的条件return1else:returnnfun(n1)4321fun(4)
  任何递归函数,它的原理都是一样的。定义一个递归函数,在递归函数里面它其实就是不断得调用自身,然后设置递归函数的时候,一定不能忘了递归条件。6。斐波那契数列
  后面的数都是等于前2个数相加的结果。
  斐波那契数列的第一个数值是1,第二个数值也是个1,第三个数等于前两个数相加的结果(那就是2),第四个数等于于前两个数相加的结果(那就是3)。
  〔1,1,2,3,5〕
  以此类推。

2021百元性价比之王,倍思BowieE8真无线蓝牙耳机评测各位挑选真无线蓝牙耳机的标准是什么呢?音质?品牌?近两年这些似乎越来越不重要,价格、外观、手机适配度的地位蹭蹭往上涨。符合标准的真无线蓝牙耳机其实很多,该怎么选?您边看边挑。本……华为高端曲面屏拍照手机,性能强悍的两款5G手机推荐第一款华为荣耀v405G推荐原因华为荣耀v40不管是外观、屏幕、处理器、摄像头模组以及超级快充都非常具有亮点。1。屏幕为6。72英寸OLED1080p曲面打孔……年轻人不要按兵不动富爸爸,穷爸爸原创读书笔记(十二)职场中,我们既要做好老师,也要做好学生。好老师代表着专业性,甚至可以直接带徒弟教授专业技能,好学生代表着不仅仅在自己的专业领域里面有所建树,同事从事的岗位的专业知识也要去了解、……当电视盒子热潮褪去,它却依旧在坚守,而且新品不断前言这次我能够有幸体验当贝超级盒子H1,是真的走了狗屎运。像我这样的中奖绝缘体能够中一次奖,别提有多高兴,兴奋到截屏四处炫耀,兴奋到逢人就说抛开题外话,说说电视盒子……物联网需求在全球范围内增长是什么阻碍了美国市场的成熟?在过去12个月里,COVID19对减缓美国商业物联网投资和采用造成了相当大的打击,超过三分之一(36)的美国组织减少了他们在物联网方面的投资计划,33的组织完全取消了他们的物联……极简设计,散热有方光愈2电脑机箱界YYDS前言电脑机箱,它不仅仅是一个铁盒子,它还是各类硬件的家。我从去年开始入坑电脑组装,折腾了好多电脑硬件。从一开始更换显卡,选择内存条,加装固态硬盘到增加机箱散热风扇。。。。……雅俗共赏综合为王海贝HiByRS6主观体验谈(长文)作为一个从高中开始就深度使用海贝音乐APP用户的人来说,这个品牌一直是如何在用户体验上进步、如何改善产品的,我算是看在眼里,包括他们也推动了安卓播放器在Soc层面的内卷;而论产……10多万配豪车级内饰,7。9S破百,能无人驾驶,威马W6真的随着人们生活水平的提高,对于汽车各个方面的表现自然有着更高的要求,而很多车企面对消费者日益增长的各种诉求,也在不断完善旗下车型的产品力,可以说当下市场正在倒逼车企对旗下车型进行……骂哈尔滨确诊女孩毒王的人,你们才是真的有毒最近关于毒王的网暴消息热度飞涨,被确诊的哈尔滨女孩个人信息被曝光,随即也被骂上了热搜。这种事件的发生真的很令人感到悲哀,尤其是对比之前万众一心对抗河南洪灾的事情,更是难以相信这……小米MIX4官网无货黄牛加价网友抓狂,雷军还不去拧螺丝?小米MIX48月刚刚发布的小米MIX4可以说是小米2021年的扛把子机型,更是小米十周年继往开来的黑科技旗舰,被小米与众多米粉寄予厚望。该机4999元起步的价格说实话并不算离谱……浪漫光斑自然裸妆,Reno6人像视频这条路子走对了短视频时代,每一个人都成为了视频创作者。对于大多数人来说,手机是最为便捷的创作工具,手机的视频功能会直接影响到拍摄的效果。不过在视频拍摄中,人像是最难拍摄的部分:角度不好找,瑕……iPhone11价格降至4千价位,一个月销量超百万台现在5G手机在手机市场的呼声越来越高,得到了许多人的关注,就在最近刚刚上市的几款新机中,超过一半的机型能够使用5G网络,特别是那些全新的旗舰机的5G机型。但是在这种情况下,苹果……
揭秘供电局智能电表上的一个小功能了解一下吧!大家好,前几期给大家介绍智能电表功能和采集原理,集中器的操作方法介绍,今天介绍一个小功能!功能介绍:这个功能只是大家对智能电表功能不了解,这个功能可以方便大家查询电量,像……铜须门铜须幽月儿聊天记录出轨被老公曝光铜须门铜须幽月儿出轨聊天记录这个事情很多人是不敢相信,甚至是说为了红火,是连自己妻子都曝光,在这样的基础中,人们则是非常想要知道事情的真相是什么,网络中曝光的图片究竟是怎么回事……SpringMVC表单标签库我们在进行SpringMVC项目开发时,一般会使用EL表达式和JSTL标签来完成页面视图的开发。其实Spring也有自己的一套表单标签库,通过Spring表单标签,可以很容易地……花旗正在为客户代理加密货币交易,但资产负债表上没有加密资产花旗正在为客户代理加密货币交易,但资产负债表上没有加密资产据金十消息,花旗董事长Dugan表示,花旗正在为客户代理加密货币交易,但花旗的资产负债表上没有加密货币资产。此外……杨丞琳李荣浩怎么好的原来这一切都是命中注定杨丞琳和李荣浩这一对终于结婚了。那些一直催婚的歌迷们也可以放下心了。他们两个自从公开恋情以来就一直有不少甜蜜的互动。到处撒糖也是让不少人吃到了他们的狗粮。话说回来他们两个是从什……姜丹尼尔在韩国有多火各种榜单长时间第一名姜丹尼尔在韩国有多火,很火,如果要找到一个标准的话,那应该就是《偶像练习生》中的蔡徐坤吧。在姜丹尼尔身上有很多走红的元素,1。C位出道。《Produce101》第一季是101名……沈月是谁的女儿圈外人继承了母亲的美貌气质沈月一直是普通女孩子,在很多人心中认为就是太过于普通,不知道为什么会那么出名啊!于是一些人则是在猜测沈月的背景,说沈月是谁的女儿,沈月是谁的女儿呢?沈月在圈子中好像是没有什么背……2020年旗舰标配,高通最强骁龙865正式发布!小米将首发北京时间今天凌晨,高通在美国夏威夷举办2019高通骁龙技术峰会,正式推出年度旗舰手机芯片骁龙865处理器、首款5GSoC中高端芯片骁龙765和骁龙765G、5G模组化平台、以及……小米2020年报解读互联互通,AIOT进入生态总体战从整个商业世界看,此刻仍处于上一轮以电子计算机移动互联网技术为基石的康波周期末端。新周期即将到来,我们也能从公开市场中窥探到它的蛛丝马迹。一个直接信号是,手机、汽车以及各……全球搜受邀出席国企创新行新媒体品牌营销策略分享会全球化的今天,企业之间的比拼,无不反映出企业品牌之间的竞争。中国企业品牌走出去,尤其是国有企业在海外打造自主品牌,通过品牌扩大自己在国际的影响力,成为中国国有企业负责人关心的话……释明心在哪个寺庙最帅和尚到底为什么要出家释明心法师一听就知道是出家人,出家人忘却红尘选择出家的时候都会起一个法号,宣布自己已经了却前尘往事了,到了现在也还是会有人选择出家,倒不是因为寻求什么心灵上的平静或者是用来装逼……jy和少帮主怎么了多大的矛盾让他们没有了交集jy和少帮主都是比较早接触游戏解说的。而且两个人的名气都很大。之前两人同属一家公司。即是同事也是朋友。自然给人的感觉两个人走的很近关系也很好。但是后来他们两个几乎就没有什么互动……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网