递归定义
函数定义中调用函数自身的方式
两个关键特征
- 链条:计算过程存在递归链条
- 基例:存在一个或多个不需要再次递归的基例
递归的实现
递归的实现-斐波那契数列
fb1.py
def fib(n):
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
fib(1000)
执行结果: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
def f(n):
if n == 1 or n == 2:
return 1
else:
return f(n=1) + f(n-2)
科赫雪花
高大上的分形几何:分形几何是一种迭代的几何图形,广泛存在于自然界中
科赫曲线,也叫雪花曲线
科赫曲线的绘制
递归思想:函数+分支
递归链条:线段的组合
递归序列:初识线段
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)
实例
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 #3阶科赫曲线,阶数
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
main()
科赫雪花小包裹
在cmd中执行
pyinstaller -i cc.ico -F XXX.py
如果出现报错,则因为电脑中没有pyinstaller
所以要先安装了pyinstaller
查看+安装pyinstaller
形成小包裹