效果如下,核心是递归思想

其实代码很短,关键是理解koch函数的else部分出现的递归
要看懂代码,你还需要理解turtle库的函数,如果不理解,可以参考这篇文章
https://blog.csdn.net/qq_37465638/article/details/86674346

# 雪花
import turtle as a
def koch(size, n):
    # 只有当阶数是0时,往走一段
    if (n == 0):
        a.fd(size)
    else:
        # 将一条线分成四段,这里设置每段之间需要的转向
        for angle in [0, 60, -120, 60]:
            a.right(angle)
            # 转向之后进入了下一阶的段,递归,这里一定到想清楚!
            koch(size / 3, n - 1)

if __name__ == '__main__':
    a.setup(650, 300, 200, 200)
    # 将画笔左移一点
    a.penup()
    a.goto(-100, 0)
    a.pendown()

    # 设置画雪花的阶数,阶数越多,雪花细节越丰富,但画得也越慢
    level = 2
    size = 100
    a.hideturtle()  # 隐藏画笔
    # 每次画雪花的1/3,左转120
    for i in range(3):
        koch(size, level)
        a.left(120)
    a.done()


调整每条线的偏转角度和总的偏转角度,可以获得不同的图形,是不是很有趣!