前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习笔记十一(递归)

Python学习笔记十一(递归)

作者头像
世纪访客
发布2018-08-02 15:41:14
2710
发布2018-08-02 15:41:14
举报
文章被收录于专栏:西枫里博客西枫里博客
...
...

本次学习先回顾了前两天的lambda表达式,使用lambda表达式创建匿名函数。接着学习本次课程的内容:Python的递归。什么是递归,程序调用自身的编程方法叫递归。递归的两个条件,首先是需要调用自身。其次程序能够返回正确的返回值。递归在某些情况下能更简单有效的解决问题,在递归和迭代都能解决问题的情况下,也并非所有的情况都适合使用递归函数。

首先来看一个阶乘的例子。

1、使用迭代方法计算阶乘。

未标题-1.jpg
未标题-1.jpg

2、使用递归方法计算阶乘

未标题-2.jpg
未标题-2.jpg

通过上述的例子可以看出,递归调用了函数自身,最后成功返回了结果,显然递归的代码更加优雅。

再来看下使用递归计算斐波那契数列。

1、使用迭代方法计算结果。

未标题-3.jpg
未标题-3.jpg

2、使用递归方法计算结果。

未标题-4.jpg
未标题-4.jpg

通过上述的例子递归方法更加明确。但此时如果计算的位数持续增加,那么递归的效率将急剧递减,因为递归一层一层的返回数据成倍的增加了运算量,而此时迭代算法反而效率更高,所以在计算类似问题的时候需要综合考量效率和性能。

最后使用递归计算汉诺塔步骤。

汉诺塔游戏是一款古老而经典的益智游戏,使用递归算法将很好的指明游戏的具体操作步骤,从而更加快速的通关。

未标题-5.jpg
未标题-5.jpg
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先来看一个阶乘的例子。
  • 再来看下使用递归计算斐波那契数列。
  • 最后使用递归计算汉诺塔步骤。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档