python笔记七(递归函数)

在介绍递归函数之前,我们先介绍以下递归函数的使用有以下特征:

1.递归函数就是函数在函数体内部调用本身

2.递归函数的运算规模要不断减小,这样才是可以运算的

3.递归的层数不要超过999,因为函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。调用层数过多就会导致栈溢出。

4.理论上所有的递归函数都可以用循环来表示,但是递归更形象易于理解(虽然我更习惯使用循环~~~~)

复制代码
>>> def factorial(n):
...     if n ==1:
...         return 1
...     else:
...         return n*factorial(n-1)
...
>>> factorial(5)
120
复制代码

以上代码我们通过循环来实现~~~~~

复制代码
>>> def factorial(n):
...    fac=1
...    while n>1:
...        fac=fac*n
...        n-=1
...    return fac
>>> factorial(5)
120
posted @ 2018-09-28 17:32  坚持!!  阅读(270)  评论(0编辑  收藏  举报