Python3.5——递归

来源:互联网 发布:金税盘发票数据导出 编辑:程序博客网 时间:2024/06/05 15:53

1、递归的定义:

在函数内部可以调用其他函数,如果在一个函数内部调用其本身,这个函数就是递归函数

2、递归的特性:

(1)必须有一个明确的结束条件。(最大的递归层数:999层)

(2)每次进入更深一层递归时,问题规模相比上次递归都应有所减少

(3)递归的效率不高,递归层数过多会导致栈溢出

(在计算机中,函数调用是通过栈这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧;每当函数返回,栈就会减一层栈帧。

由于栈的大小是有限的,所以,递归层数过多会导致栈溢出。)

关于堆栈详解文章:http://www.cnblogs.com/lln7777/archive/2012/03/14/2396164.html

#!/usr/bin/env python# -*- coding:utf-8 -*-# Author:ZhengzhengLiu#递归def calc(n):    print(n)    if int(n/2) > 0:        return calc( int(n/2) )    print("->",n)    calc(10)#运行结果:#10#5#2#1#-> 1