python笔记七(递归函数)

时间:2022-01-23 20:38:22

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

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