一、函数递归的理解
函数递归可以理解为数学中的归纳法,首先证明当 x=h0 时函数成立,然后证明当 x=hk时函数成立,当 x=hk+1时也成立,从而形成多米诺骨牌效应,函数的递归实质是函数的自我调用。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/17c780f0568a5dbe2f04b945e3dda70a.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2cd78e11415f2230aec1f925d2879e03.png)
二、实例
1.阶乘的计算
def fact(n):
if n == 0:
return 1
else:
return n*fact(n-1)
a = fact(3)
print(a)
2.字符反转
def rvs(s):
if s == '':
return s
else:
return rvs(s[1:]) + s[0]
print(rvs('123'))
3.科赫雪花
import turtle
def koch(size, n):
if n == 0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3, n-1)
def main():
turtle.setup(600,600)
turtle.penup()
turtle.goto(-200, 100)
turtle.pendown()
turtle.pensize(2)
level = 3
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
turtle.done()
main()
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e967959d1c4d2f76d14bc25d91f13c4f.png)