关于迭代与递归的补充

释放双眼,带上耳机,听听看~!

递归

大家有没有想我的Python呢?这几天挖粽子,挖到自闭,还好挖到一个,大家快去补天挖粽子吧!我知道这是废话。连Python都不会挖什么粽子。那不还赶快学起。这是函数的最后一章,下一章《字典》快点学习吧,开始我们的笔记

等等,差点忘记了,为了赶时间,我只能舍弃无关的图片,但又要保障大家的质量。

一边看视频一边看笔记吧,后台回复8523获取教程视频让你们零消费,学会Python。

递归是神马

从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?‘从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……’”。 这个故事永远也讲不完,因为没有递归结束条件。老师讲递归时总是说,递归很简单,一个递归结束条件,一个自己调用自己。如果递归没有结束条件,那么就会无限递归下去。在编程的时候,没有递归结束条件或者递归过深,一般会造成栈溢出。

网络

怎么样理解了吗?有的同学对迭代也不了解,这里也提一下

迭代算法是用计算机解决问题的一种基本方法。

它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。 为什么使用迭代而不用递归呢? 很明显,使用递归时每调用一次,就需要在栈上开辟一块空间,而使用迭代就不需要了,因此,很多时候设计出了递归算法,还要想法设法修改成迭代算法。

网络

这样的解释懂了吧。

递归从原理上来讲就是不断地调用自身的一个行为,迭代就是重复同一个操作的,并从原有的值变成新值

例子

>>> def number():... number()...>>> number()Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in number File "<stdin>", line 2, in number File "<stdin>", line 2, in number File "<stdin>", line 2, in number

它会不断地重复,直到耗尽所有资源。Python出于保护防止把它玩坏,最高叠加是100层。

实例

写一个求阶乘的函数

首先你要知道什么是阶乘,如果输入一个数如5,1x2x3x4x5=120,120就是5的阶乘。

普通版本

>>> def recursion(n):...  result = n...  for i in range(1,n):...  result *= i...  return result...>>> recursion(5)120

递归版本

>>> def factorial(n):...  if n == 1:...  return 1...  else:...  return n * factorial(n - 1)...>>> factorial(5)120>>>

解释一下,期初我也是有些不懂,但是看着看着就明白了。灵魂画手天钧上线

真的是为了你们更舒服点,我也是这两天练习了画图,怎么样求打赏。嘿嘿嘿

希望多多支持哦


渗透云笔记

没时间解释了,快长按左边二维码关注我们~~

本文源自微信公众号:渗透云笔记

人已赞赏
安全工具

继承(第十三章)

2019-10-16 17:18:54

安全工具

Python学习笔记(第七章)

2019-10-16 17:18:59

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索