惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
J
Java Code Geeks
U
Unit 42
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
L
LangChain Blog
D
Docker
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
I
InfoQ
The Cloudflare Blog
小众软件
小众软件
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
V
V2EX
月光博客
月光博客
Martin Fowler
Martin Fowler

西枫里博客

如何养好一只兔子 - 西枫里 浙北安吉北部乡镇春节民俗 - 西枫里 湘西张家界之旅(游记篇) - 西枫里 热闹的电影暑期档 - 西枫里 湘西张家界之旅(攻略篇) - 西枫里 阳记 - 西枫里 一地鸡毛,高歌欢进(三) - 西枫里 华为Nova7SE换屏维修记录 - 西枫里 魔都魔幻生活——我的抗疫经历 - 西枫里 树莓派升级手记 - 西枫里 尝试挽救一下我的SEO——页面常规优化 - 西枫里 2022年在上海外地牌照车辆异地年检流程 - 西枫里 尝试挽救一下我的SEO——域名和主机的影响 - 西枫里 尝试挽救一下我的SEO——缘起 - 西枫里 米6钉子户,更换电池再战2年。 - 西枫里 二换科鲁兹前照灯灯泡 - 西枫里 一地鸡毛,高歌欢进(二) - 西枫里 联想拯救者14ISK更换电池 - 西枫里 冷车打火喘抖怎么办?倒车灯倒车雷达影像没反应怎么办? - 西枫里 树莓派刷64位系统放内网做服务器使用 - 西枫里 米6刷MIUI12的简易教程(进击的小米6) - 西枫里 一地鸡毛,高歌欢进(一) - 西枫里 人近不惑三十六,本命牛年转乾坤。 - 西枫里 魔都新冠疫苗接种记 - 西枫里 thinkpad扬声器没声音 - 西枫里 个人健康管理,刻不容缓 - 西枫里 Hello Java - 西枫里 到了退休年龄社保未缴满十五年怎么办? - 西枫里 科鲁兹/英朗后备箱开关更换 - 西枫里 iphone6换屏教程,附iphone已停用解锁 - 西枫里
Python学习笔记十一(递归) - 西枫里
西枫里 · 2018-06-11 · via 西枫里博客

Python学习笔记十一(递归)

本次学习笔记主要是记录Python用来创建递归函数来解决一些特定的问题,部分问题同步使用迭代方法。

摘要

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

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

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

未标题-1.jpg

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

未标题-2.jpg

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

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

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

未标题-3.jpg

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

未标题-4.jpg

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

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

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

未标题-5.jpg