《Python编程从0到1》笔记5——图解递归你肯定看完就能懂!

本文介绍了Python中的单重递归概念,通过示例函数seq(n)阐述递归如何实现从1到n的数字打印。递归版本虽然直观,但效率较低,主要用于理解递归函数的工作原理。书中强调递归在解决问题时的思维过程和基本语法,适合Python初学者。
摘要由CSDN通过智能技术生成

本小节的示例比较简单,因为在每次递归过程中原问题仅缩减为单个更小的问题。这样的问题往往能够用简单循环解决。这类递归算法的函数调用图是链状结构。这种递归类型被称为“单重递归”(single recursion)。

示例一:编写函数seq(n),打印从1到n的数字。

可以很容易地用循环解决这个问题:

def seq(n):
    i = 1
    while i<=n:
        print(i)
        i += 1

也可以使用递归版本,这是本节的主要程序风格:

def seq(n):
    if n>0:
        seq(n-1)
        print(n)

在递归版本的seq()函数中,参数等于0时函数什么也不做直接返回。当参数为正整数时[1],将参数减1后调用自身,待调用返回后打印参数。当调用seq(3)时,该函数会生成如下的调用链seq(3) > seq(2) > seq(1) > seq(0),当调用链依次返回时,seq(3) - seq(1)的print语句会逆序执行,完成打印序列的目的。如图 2.10所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值