python递归函数

概念

函数中有一种特殊的函数,叫做递归函数.递归函数的本质是调用自身.

栈(stack) 

要理解递归的概念,就需要先介绍一个叫做栈的编程概念.

栈是一种简单的数据结构,甚至可以简单的将其想象成一个队列.

如上图所示:

我们将6,7分别依次放入队列,这叫入栈.

现在我们要拿到1,那么只能先将7,6,5,...2分别取队列,才能拿到1.这叫出栈.

很明显,这个栈的顺序是后进先出.

这个形式就是递归函数在内存中的调用方式.

基线条件和递归条件

前面提到了,递归函数就是自己调用自己.

现在来看递归函数的伪代码:

def func(n):
    if some_conditione:#基线条件
        return n
    else: #递归条件
        func(n-1)

递归函数的调用就像栈的出栈和入栈一样.

在这段为代码中,递归条件就是指函数调用自身的条件.

基线条件就表示在满足该条件时该函数停止再调用自己,从而避免无限循环.

倒计时递归函数 

用一个实际的例子说说明递归函数:

import time

def time_counter(n):
    if n==0:
        print('时间到')
    else:
        print(n)
        time.sleep(1)
        time_counter(n-1)

time_counter(3)

#输出:
3
2
1
时间到

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值