(看过我看过我的博客,第一段不一样):
在阅读文章之前,先看看你是不是这样的人:
1.我不能做辅导班的作业。我抄了其他博客,不知道是什么意思。我担心老师会让你上前告诉其他学生(没关系,我会在这里教你,然后你会教他们)
2.想学这个仁哥的程序,别人却看不懂(刷我的就对了)
3.踩我的(踩我)
4.想参考一下,打发时间(然后,你得好好看看我的程序)
二、分析分析
好吧,先看原图:
从事艺术的同志先别说我,这是计算机的问题,做出这么尴尬的事,我也没办法。
言归正传,电脑出来的,证明人是随机的 ,而不是我们在哪里计算角度,也责怪作者太懒,拒绝发送更多的……
三、加油!(代码第一段)
程序员怎么办?
import turtle import random from math import * def Fibonacci_Recursion_tool(n): #斐波那契数列法 if n <= 0: return 0 elif n == 1: return 1 else: return Fibonacci_Recursion_tool(n - 1) Fibonacci_Recursion_tool(n - 2) def Fibonacci_Recursion(n): #生成斐波那契数列,并存入列表 result_list = [] for i in range(1, n 3): result_list.append(Fibonacci_Recursion_tool(i)) return result_list yu = Fibonacci_Recursion(10) #生成斐波契那数列 print(yu)
这个代码是生成斐波那契数(说实话,你的银杏树不需要使用斐波那契数列,复制代码的学生可以告诉老师在网上看到这样的编辑,他们也这样做)。前三行不用说,引入三个模块(小乌龟,随机,数学)。从第五行开始就是动真格(我在黄金螺旋里讲过这个代码,看过的第三章可以跳过)。这个n是什么意思,是什么意思(斐波那契数列)?如果等于0,我们会回到0(return:如果等于一,则返回一。下面是什么意思-斐波那契数列中前两项之和等于这一项,前一项:第(项数-1)项,前两项:第(项数-2)项,然后再加起来。第一个兄弟解决了,还有一个等着你打开编辑戒指:首先,我问你,你知道这个函数的第二行,空列表是什么意思吗?——空列表实际上是一个柜子,你可以把东西塞进里面(子集中的空集),你添加一个元素,你愿意。这就像一家公司,原来没有人,你创建了这家公司,有一个大公司boss,然后你招聘员工,来一个,你公司的员工(人)多一个。这个理解,那我现在让你做一个统计你公司人的程序,你会做吗?——不,你不会把东西塞进任何列表。你不知道如何把大象塞进冰箱。你该怎么办?所以在这里我们要感谢PYTHON——列表(所有)增加了一个新功能——append。这个模块是额外的意思。想加几个就加几个,但是要说清楚加几个,不然电脑课听不懂。光说加几个,电脑基本蒙圈,还说要加什么,不然电脑基本报销。你看,我先用第一个函数做斐波那契数,然后把它列入列表。随着变量i的增加,斐波那契数也在增加。最忌讳形成列表,但会返回列表,然后赋值yu(当时我在想变量名,校友不小心碰了碰我的胳膊,就打出了这个东西,好吧,用这个做变量名吧)……
四、冲鸭!(代码第二段-画叶)
先看代码:
def leaf(x, y, node):#定义画叶的方法 til = turtle.heading() i = random.random() an = random.randint(10, 180) ye = random.randint(6, 9)/10 turtle.color(ye, ye*0.9, 0) turtle.fillcolor(ye 0.1, ye 0.05, 0) turtle.pensize(1) turtle.pendown() turtle.setheading(an 90) turtle.forward(8*i) px = turtle.xcor() py = turtle.ycor() turtle.begin_fill() turtle.circle(7.5*i, 120) # 画一段120度的弧线 turtle.penup() # 抬起笔来 turtle.goto(px, py) # 回到圆点 turtle.setheading(an 90) # 向上画 turtle.pendown() # 落笔,开始画 turtle.circle(-7.5*i, 120) # 画一段120度弧线 turtle.setheading(an 100) turtle.circle(10.5*i, 150) turtle.end_fill() # 画一段150度弧线 turtle.penup() turtle.goto(x, y) turtle.setheading(til) turtle.pensize(node / 2 1)
(好吧,直接去下面复制代码,对吧?
首先定义四个函数:til/i/an/ye
til取小乌龟头的方向值
i在0到1值中减去随机值
an在10到180之间随机取一个角度
ye就是随机取一种黄色(以后我们会用一些手段把它变成一种黄色(以后我们会用一些手段把它变成RGB所以不要惊慌)
以下两行,大家应该都能理解,就是去一种银杏叶的颜色,有没有学霸科普,银杏叶的黄色是什么?(抄代码的同学说这是自己调试的,也可以具体描述有多难,但不要过度。)然后下面是一些基础设施,然后进入画叶阶段。知道i有什么用,就是调一个边长。所以这个代码调试很重要,没有太高的技术含量。
有人会问:node是什么意思?他是一个笔大小的形式参数(我当时写这个好像没什么意义,就是画难度(网友笑评:增加推文长度的哈哈)
五、开挂(难的来了)!
嗯,每个人都必须先做好心理准备,不要被下面的长段吓坏:
def draw(node, length, level, yu, button): #定义画树的方法 turtle.pendown() t = cos(radians(turtle.heading() 5)) / 8 0.25 turtle.pencolor(t*1.6, t*1.2, t*1.4) #(r, g, b)颜色对应的RGB值 turtle.pensize(node/1.2) #画笔尺寸 x = random.randint(0, 10) #生成随机数决定是画树枝还是画落叶 if level == top and x > 6: #此时画落叶,x范围太大会导致树太秃 turtle.forward(length) # 画树枝 yu[level] = yu[level] - 1 c = random.randint(2, 10) for i in range(1, c): leaf(turtle.xcor(), turtle.ycor(), node) # 添加0.落叶三倍 if random.random() > 0.3: turtle.penup() # 飘落 t1 = turtle.heading() an1 = -40 random.random() * 40 turtle.setheading(an1) dis = int(800 * random.random() * 0.5 400 * random.random() * 0.3 200 * random.random() * 0.2) turtle.forward(dis) turtle.setheading(t1) turtle.right(90) # 画叶子 leaf(turtle.xcor(), turtle.ycor(), node) turtle.left(90) # 返回 t2 = turtle.heading() turtle.setheading(an1) turtle.backward(dis) turtle.setheading(t2) elif level==top and x < 7 : #此时画枝叶,x太大的范围会导致落叶太少 turtle.penup() turtle.forward(length) elif level>3 and (x>6) :#三级以上树枝,执行以下策略的概率为40% turtle.pendown() turtle.forward(length) c = random.randint(4, 6) for i in range(3, c):
leaf(turtle.xcor(), turtle.ycor(),node)
leaf(turtle.xcor(), turtle.ycor(),node)
button=1# jump"""
else:
turtle.forward(length) # 画树枝
yu[level] = yu[level] -1
if node > 0 and button == 0:
# 计算右侧分支偏转角度,在固定角度偏转增加一个随机的偏移量
right = random.random() * 5 + 17
# 计算左侧分支偏转角度,在固定角度偏转增加一个随机的偏移量
left = random.random() * 20 + 19
# 计算下一级分支的长度
child_length = length * (random.random() * 0.25 + 0.7)
# 右转一定角度,画右分支
r=random.randint(0, 1)
if r==1:
turtle.right(right)
level = level + 1
#print("level", level)
else:
turtle.left(right)
level = level + 1
#print("level", level)
draw(node - 1, child_length,level,yu,button)
yu[level] = yu[level] +1
if yu[level] > 1:
# 左转一定角度,画左分支
if r==1:
turtle.left(right + left)
draw(node - 1, child_length, level, yu,button)
# 将偏转的角度,转回
turtle.right(left)
yu[level] = yu[level] - 1
else:
turtle.right(right + left)
draw(node - 1, child_length, level, yu,button)
# 将偏转的角度,转回
turtle.left(left)
yu[level] = yu[level] - 1
else:
if r==1:
turtle.left(right + left)
turtle.right(left)
else:
turtle.right(right + left)
turtle.left(left)
turtle.penup()
#退回到上一级节点顶部位置
turtle.backward(length)
其实咱将代码分个段其实就不难了:
def draw(node, length, level, yu, button): #定义画树的方法
turtle.pendown()
t = cos(radians(turtle.heading()+5)) / 8 + 0.25
turtle.pencolor(t*1.6, t*1.2, t*1.4) #(r, g, b)颜色对应的RGB值
turtle.pensize(node/1.2) #画笔的尺寸
x = random.randint(0, 10) #生成随机数决定要画树枝还是画飘落的叶子
这个其实就是一些比较基础的设置,这个x的作用就是……一会儿就知道了(随机数,决定是画叶子还是树干,还是都画……(其实上边都是由注释的)
if level == top and x > 6: #此时画飘落的叶子,x范围太大会导致树太秃
turtle.forward(length) # 画树枝
yu[level] = yu[level] - 1
c = random.randint(2, 10)
for i in range(1, c):
leaf(turtle.xcor(), turtle.ycor(), node)
# 添加0.3倍的飘落叶子
if random.random() > 0.3:
turtle.penup()
# 飘落
t1 = turtle.heading()
an1 = -40 + random.random() * 40
turtle.setheading(an1)
dis = int(800 * random.random() * 0.5 + 400 * random.random() * 0.3 + 200 * random.random() * 0.2)
turtle.forward(dis)
turtle.setheading(t1)
turtle.right(90)
# 画叶子
leaf(turtle.xcor(), turtle.ycor(), node)
turtle.left(90)
# 返回
t2 = turtle.heading()
turtle.setheading(an1)
turtle.backward(dis)
turtle.setheading(t2)
好这是我们第一个选择结构的第一种情况,那么我们下面肯定是要设置一下这个里边的所有函数的,有不然这边所有的程序肯定是行不通的,top是这棵树最多有多少级,如果我们已经到这么多了,并且x==6的话,那么,我们就去画飘落的叶子+树干,还记得yu是什么鬼吗?没错,是斐波那契数列,所以说我们这棵树有一个名字,就叫“斐波那契树”(哈哈)那么下面我们引用了树叶的函数,让他重画叶子,在这其中,还有%30的可能性画飘落的叶子(random.random()去的是0~1之间的浮点数,所以说是三成的可能性。那我这个画飘落的叶子,肯定要有一个角度啊,你想想,飘落的叶子,肯定得距离树一段距离啊!所以说这一段代码就是如此一个写法,要给他一个角度,还要给他一段距离,才能让他画飘落的叶子。
elif level==top and x < 7 : #此时画枝叶,x范围太大会导致飘落的叶子太少
turtle.penup()
turtle.forward(length)
这个就不用讲了,就是画枝叶。
elif level>3 and (x>6) :#三级树枝以上,有40%的概率执行以下策略
turtle.pendown()
turtle.forward(length)
c = random.randint(4, 6)
for i in range(3, c):
leaf(turtle.xcor(), turtle.ycor(),node)
leaf(turtle.xcor(), turtle.ycor(),node)
button=1# jump"""
首先我们有讲一讲,这个小海龟是如何知道我们要在树枝旁边画叶子的,这里需要用到一个代码,叫:turtle.xcor()和turtle.ycor()这俩是获取小海龟位置的,然后就在对应的位置上画一片叶子。
else:
turtle.forward(length) # 画树枝
yu[level] = yu[level] -1
最后,如果前面几种情况都不是,那就按部就班——画树枝。
if node > 0 and button == 0:
# 计算右侧分支偏转角度,在固定角度偏转增加一个随机的偏移量
right = random.random() * 5 + 17
# 计算左侧分支偏转角度,在固定角度偏转增加一个随机的偏移量
left = random.random() * 20 + 19
# 计算下一级分支的长度
child_length = length * (random.random() * 0.25 + 0.7)
# 右转一定角度,画右分支
r=random.randint(0, 1)
if r==1:
turtle.right(right)
level = level + 1
#print("level", level)
else:
turtle.left(right)
level = level + 1
#print("level", level)
draw(node - 1, child_length,level,yu,button)
yu[level] = yu[level] +1
if yu[level] > 1:
# 左转一定角度,画左分支
if r==1:
turtle.left(right + left)
draw(node - 1, child_length, level, yu,button)
# 将偏转的角度,转回
turtle.right(left)
yu[level] = yu[level] - 1
else:
turtle.right(right + left)
draw(node - 1, child_length, level, yu,button)
# 将偏转的角度,转回
turtle.left(left)
yu[level] = yu[level] - 1
又是一大段代码,得讲好一会了:
你知道这一段是干啥的吗,这一段是控制这个树生长的,具体的原理就是首先电脑去一个随机数,让后吧可能的数进行分类,一类执行这个,另一类执行那个,之哪一类执行什么,这还得你自己定,还有一种就是,让他随机走(通过一系列加减乘除来得出他最后的角度)。
else:
if r==1:
turtle.left(right + left)
turtle.right(left)
else:
turtle.right(right + left)
turtle.left(left)
turtle.penup()
#退回到上一级节点顶部位置
turtle.backward(length)
这个就是让他不要再枝叶间迷失方向,回家当指南用的。
六,主程序
if __name__ == '__main__':
turtle.setup(width=1.0, height=1.0) #设置全屏显示
turtle.hideturtle() # 隐藏turtle
turtle.speed(0) # 设置画笔移动的速度,0-10 值越小速度越快
# turtle.tracer(0,0) #设置动画的开关和延迟,均为0
turtle.penup() # 抬起画笔
turtle.left(90) # 默认方向为朝x轴的正方向,左转90度则朝上
turtle.backward(300) # 设置turtle的位置,朝下移动300
top = 9 #树高
yu = Fibonacci_Recursion(top) #生成斐波那契数列
yu.remove(yu[0])
#print(yu) 打印斐波那契数列
button = 0
draw(top, 120, 0, yu, button) # 调用函数开始绘制
turtle.write(" wsw", font=("微软雅黑", 14, "normal")) #生成签名
turtle.done()
由于我当时做的注释比较齐全就不增加推文长度了……
七,抄代码同学的福利
import turtle
import random
from math import *
def Fibonacci_Recursion_tool(n): #斐波那契数列方法
if n <= 0:
return 0
elif n == 1:
return 1
else:
return Fibonacci_Recursion_tool(n - 1) + Fibonacci_Recursion_tool(n - 2)
def Fibonacci_Recursion(n): #生成斐波那契数列,并存入列表
result_list = []
for i in range(1, n + 3):
result_list.append(Fibonacci_Recursion_tool(i))
return result_list
yu = Fibonacci_Recursion(10) #生成斐波契那数列
print(yu)
def leaf(x, y, node):#定义画叶子的方法
til = turtle.heading()
i = random.random()
an = random.randint(10, 180)
ye = random.randint(6, 9)/10
turtle.color(ye, ye*0.9, 0)
turtle.fillcolor(ye+0.1, ye+0.05, 0)
turtle.pensize(1)
turtle.pendown()
turtle.setheading(an + 90)
turtle.forward(8*i)
px = turtle.xcor()
py = turtle.ycor()
turtle.begin_fill()
turtle.circle(7.5*i, 120) # 画一段120度的弧线
turtle.penup() # 抬起笔来
turtle.goto(px, py) # 回到圆点位置
turtle.setheading(an + 90) # 向上画
turtle.pendown() # 落笔,开始画
turtle.circle(-7.5*i, 120) # 画一段120度的弧线
turtle.setheading(an + 100)
turtle.circle(10.5*i, 150)
turtle.end_fill() # 画一段150度的弧线
turtle.penup()
turtle.goto(x, y)
turtle.setheading(til)
turtle.pensize(node / 2 + 1)
def draw(node, length, level, yu, button): #定义画树的方法
turtle.pendown()
t = cos(radians(turtle.heading()+5)) / 8 + 0.25
turtle.pencolor(t*1.6, t*1.2, t*1.4) #(r, g, b)颜色对应的RGB值
turtle.pensize(node/1.2) #画笔的尺寸
x = random.randint(0, 10) #生成随机数决定要画树枝还是画飘落的叶子
if level == top and x > 6: #此时画飘落的叶子,x范围太大会导致树太秃
turtle.forward(length) # 画树枝
yu[level] = yu[level] - 1
c = random.randint(2, 10)
for i in range(1, c):
leaf(turtle.xcor(), turtle.ycor(), node)
# 添加0.3倍的飘落叶子
if random.random() > 0.3:
turtle.penup()
# 飘落
t1 = turtle.heading()
an1 = -40 + random.random() * 40
turtle.setheading(an1)
dis = int(800 * random.random() * 0.5 + 400 * random.random() * 0.3 + 200 * random.random() * 0.2)
turtle.forward(dis)
turtle.setheading(t1)
turtle.right(90)
# 画叶子
leaf(turtle.xcor(), turtle.ycor(), node)
turtle.left(90)
# 返回
t2 = turtle.heading()
turtle.setheading(an1)
turtle.backward(dis)
turtle.setheading(t2)
elif level==top and x < 7 : #此时画枝叶,x范围太大会导致飘落的叶子太少
turtle.penup()
turtle.forward(length)
elif level>3 and (x>6) :#三级树枝以上,有40%的概率执行以下策略
turtle.pendown()
turtle.forward(length)
c = random.randint(4, 6)
for i in range(3, c):
leaf(turtle.xcor(), turtle.ycor(),node)
leaf(turtle.xcor(), turtle.ycor(),node)
button=1# jump"""
else:
turtle.forward(length) # 画树枝
yu[level] = yu[level] -1
if node > 0 and button == 0:
# 计算右侧分支偏转角度,在固定角度偏转增加一个随机的偏移量
right = random.random() * 5 + 17
# 计算左侧分支偏转角度,在固定角度偏转增加一个随机的偏移量
left = random.random() * 20 + 19
# 计算下一级分支的长度
child_length = length * (random.random() * 0.25 + 0.7)
# 右转一定角度,画右分支
r=random.randint(0, 1)
if r==1:
turtle.right(right)
level = level + 1
#print("level", level)
else:
turtle.left(right)
level = level + 1
#print("level", level)
draw(node - 1, child_length,level,yu,button)
yu[level] = yu[level] +1
if yu[level] > 1:
# 左转一定角度,画左分支
if r==1:
turtle.left(right + left)
draw(node - 1, child_length, level, yu,button)
# 将偏转的角度,转回
turtle.right(left)
yu[level] = yu[level] - 1
else:
turtle.right(right + left)
draw(node - 1, child_length, level, yu,button)
# 将偏转的角度,转回
turtle.left(left)
yu[level] = yu[level] - 1
else:
if r==1:
turtle.left(right + left)
turtle.right(left)
else:
turtle.right(right + left)
turtle.left(left)
turtle.penup()
#退回到上一级节点顶部位置
turtle.backward(length)
"""
5.主函数部分
主函数中直接调用上述函数就行,top控制树的高度,turtle.speed控制画的速度,最后的turtle.write()用来书写最下方的签名。
```clike
"""
if __name__ == '__main__':
turtle.setup(width=1.0, height=1.0) #设置全屏显示
turtle.hideturtle() # 隐藏turtle
turtle.speed(0) # 设置画笔移动的速度,0-10 值越小速度越快
# turtle.tracer(0,0) #设置动画的开关和延迟,均为0
turtle.penup() # 抬起画笔
turtle.left(90) # 默认方向为朝x轴的正方向,左转90度则朝上
turtle.backward(300) # 设置turtle的位置,朝下移动300
top = 9 #树高
yu = Fibonacci_Recursion(top) #生成斐波那契数列
yu.remove(yu[0])
#print(yu) 打印斐波那契数列
button = 0
draw(top, 120, 0, yu, button) # 调用函数开始绘制
turtle.write(" wsw", font=("微软雅黑", 14, "normal")) #生成签名
turtle.done()
没登陆不好复制的代码在这里:
import turtle
import random
from math import * def Fibonacci_Recursion_tool(n): #斐波那契数列方法 if n <= 0: return 0 elif n == 1: return 1 else: return Fibonacci_Recursion_tool(n - 1) + Fibonacci_Recursion_tool(n - 2) def Fibonacci_Recursion(n): #生成斐波那契数列,并存入列表 result_list = [] for i in range(1, n + 3): result_list.append(Fibonacci_Recursion_tool(i)) return result_list yu = Fibonacci_Recursion(10) #生成斐波契那数列 print(yu) def leaf(x, y, node):#定义画叶子的方法 til = turtle.heading() i = random.random() an = random.randint(10, 180) ye = random.randint(6, 9)/10 turtle.color(ye, ye*0.9, 0) turtle.fillcolor(ye+0.1, ye+0.05, 0) turtle.pensize(1) turtle.pendown() turtle.setheading(an + 90) turtle.forward(8*i) px = turtle.xcor() py = turtle.ycor() turtle.begin_fill() turtle.circle(7.5*i, 120) # 画一段120度的弧线 turtle.penup() # 抬起笔来 turtle.goto(px, py) # 回到圆点位置 turtle.setheading(an + 90) # 向上画 turtle.pendown() # 落笔,开始画 turtle.circle(-7.5*i, 120) # 画一段120度的弧线 turtle.setheading(an + 100) turtle.circle(10.5*i, 150) turtle.end_fill() # 画一段150度的弧线 turtle.penup() turtle.goto(x, y) turtle.setheading(til) turtle.pensize(node / 2 + 1) def draw(node, length, level, yu, button): #定义画树的方法 turtle.pendown() t = cos(radians(turtle.heading()+5)) / 8 + 0.25 turtle.pencolor(t*1.6, t*1.2, t*1.4) #(r, g, b)颜色对应的RGB值 turtle.pensize(node/1.2) #画笔的尺寸 x = random.randint(0, 10) #生成随机数决定要画树枝还是画飘落的叶子 if level == top and x > 6: #此时画飘落的叶子,x范围太大会导致树太秃 turtle.forward(length) # 画树枝 yu[level] = yu[level] - 1 c = random.randint(2, 10) for i in range(1, c): leaf(turtle.xcor(), turtle.ycor(), node) # 添加0.3倍的飘落叶子 if random.random() > 0.3: turtle.penup() # 飘落 t1 = turtle.heading() an1 = -40 + random.random() * 40 turtle.setheading(an1) dis = int(800 * random.random() * 0.5 + 400 * random.random() * 0.3 + 200 * random.random() * 0.2) turtle.forward(dis) turtle.setheading(t1) turtle.right(90) # 画叶子 leaf(turtle.xcor(), turtle.ycor(), node) turtle.left(90) # 返回 t2 = turtle.heading() turtle.setheading(an1) turtle.backward(dis) turtle.setheading(t2) elif level==top and x < 7 : #此时画枝叶,x范围太大会导致飘落的叶子太少 turtle.penup() turtle.forward(length) elif level>3 and (x>6) :#三级树枝以上,有40%的概率执行以下策略 turtle.pendown() turtle.forward(length) c = random.randint(4, 6) for i in range(3, c): leaf(turtle.xcor(), turtle.ycor(),node) leaf(turtle.xcor(), turtle.ycor(),node) button=1# jump""" else: turtle.forward(length) # 画树枝 yu[level] = yu[level] -1 if node > 0 and button == 0: # 计算右侧分支偏转角度,在固定角度偏转增加一个随机的偏移量 right = random.random() * 5 + 17 # 计算左侧分支偏转角度,在固定角度偏转增加一个随机的偏移量 left = random.random() * 20 + 19 # 计算下一级分支的长度 child_length = length * (random.random() * 0.25 + 0.7) # 右转一定角度,画右分支 r=random.randint(0, 1) if r==1: turtle.right(right) level = level + 1 #print("level", level) else: turtle.left(right) level = level + 1 #print("level", level) draw(node - 1, child_length,level,yu,button) yu[level] = yu[level] +1 if yu[level] > 1: # 左转一定角度,画左分支 if r==1: turtle.left(right + left) draw(node - 1, child_length, level, yu,button) # 将偏转的角度,转回 turtle.right(left) yu[level] = yu[level] - 1 else: turtle.right(right + left) draw(node - 1, child_length, level, yu,button) # 将偏转的角度,转回 turtle.left(left) yu[level] = yu[level] - 1 else: if r==1: turtle.left(right + left) turtle.right(left) else: turtle.right(right + left) turtle.left(left) turtle.penup() #退回到上一级节点顶部位置 turtle.backward(length) """ 5.主函数部分 主函数中直接调用上述函数就行,top控制树的高度,turtle.speed控制画的速度,最后的turtle.write()用来书写最下方的签名。
```clike """ if __name__ == '__main__': turtle.setup(width=1.0, height=1.0) #设置全屏显示 turtle.hideturtle() # 隐藏turtle turtle.speed(0) # 设置画笔移动的速度,0-10 值越小速度越快 # turtle.tracer(0,0) #设置动画的开关和延迟,均为0 turtle.penup() # 抬起画笔 turtle.left(90) # 默认方向为朝x轴的正方向,左转90度则朝上 turtle.backward(300) # 设置turtle的位置,朝下移动300 top = 9 #树高 yu = Fibonacci_Recursion(top) #生成斐波那契数列 yu.remove(yu[0]) #print(yu) 打印斐波那契数列 button = 0 draw(top, 120, 0, yu, button) # 调用函数开始绘制 turtle.write(" wsw", font=("微软雅黑", 14, "normal")) #生成签名 turtle.done() 好,我们下期再见