21、递归与格式化:编程中的重要概念

递归与格式化:编程中的重要概念

递归的概念与应用

递归是一种以自身来定义对象或过程的方法。就像一个孩子睡不着,妈妈给她讲一只小青蛙睡不着的故事,小青蛙的妈妈又给它讲小熊睡不着的故事,小熊的妈妈再给它讲小鼬鼠的故事,直到小鼬鼠睡着,然后小熊、小青蛙、孩子依次睡着。

递归在很多方面都有应用:
- 数学模式 :阶乘和斐波那契数列等数学模式是递归的。例如阶乘,(n!) 当 (n = 0) 时为 (1),当 (n > 0) 时为 (n\times(n - 1)!)。
- 文档结构 :网页等文档具有自然的递归性。一个网页可以包含在一个盒子中,这个盒子又可以包含另一个网页,如此递归下去。
- 分形图像 :分形图像的工作原理也是递归的。

递归函数常用于高级搜索和排序算法中。即使不是程序员,理解递归系统的概念也很重要。比如在设计食谱的网页程序时,熟悉递归的人会考虑到每个食材本身也可以是包含其他食材的食谱,这样的系统会更强大。

递归的编码实现

在编程中,函数可以调用其他函数,也可以调用自身,这就是递归。例如:

def f():
    print("Hello")
    f()

f()

这个例子会不断打印 “Hello” 并调用 f() 函数,直到计算机耗尽栈空间,Python 会输出错误 “RuntimeError: maximum recursion d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值