实验4函数与代码的复用.docx
PAGE3
PAGE
实验四
实验组成员
学号
实验组
实验时间
指导教师
严凯
成绩
实验项目名称
函数与代码的复用
实验目的
1.理解函数的概念和作用,即函数能够提高代码的复用。
2.理解函数的概念和作用,即函数能够提高代码的复用。
3.掌握递归函数的编写,如用递归实现斐波那契数列,
4.理解代码复用的重要性,通过参数化函数接口,使程序具有灵活性和可扩展性。
实验内容
defdrawGap():#绘制数码管间隔(线段间的空白)t.penup()#抬笔(移动时不画线)
defdrawGap():#绘制数码管间隔(线段间的空白)
t.penup()#抬笔(移动时不画线)
t.fd(5)#前进5像素,形成间隔
defdrawLine(draw):#绘制单段数码管(是否绘制由draw参数决定)
drawGap()#先画间隔
t.pendown()ifdrawelset.penup()#落笔或抬笔
t.fd(40)#绘制线段(长度40像素)
drawGap()#再画间隔importtime#导入时间模块(可能用于控制绘制速度)
t.right(90)#右转90度,调整方向(用于下一段绘制)
#第1段:a段(顶线段)
drawLine(True)ifdin[2,3,4,5,6,8,9]elsedrawLine(False)#数字0、1、7不显示顶线段(a段)#第2段:b段(右上线段)
drawLine(True)ifdin[0,1,3,4,5,6,7,8,9]elsedrawLine(False)#仅数字2不显示右上线段(b段)#第3段:c段(右下线段)
drawLine(True)ifdin[0,2,3,5,6,8,9]elsedrawLine(False)#数字1、4、7不显示右下线段(c段)#第4段:d段(底线段)
drawLine(True)ifdin[0,2,6,8]elsedrawLine(False)#数字1、3、4、5、7、9不显示底线段(d段)t.left(90)#左转90度,调整方向(从右转向左,绘制左半部分线段)#第5段:e段(左下线段)
drawLine(True)ifdin[0,4,5,6,8,9]elsedrawLine(False)#数字1、2、3、7不显示左下线段(e段)#第6段:f段(左上线段)
drawLine(True)ifdin[0,2,3,5,6,7,8,9]elsedrawLine(False)#数字1、4不显示左上线段(f段)#第7段:g段(中间线段)
drawLine(True)ifdin[0,1,2,3,4,7,8,9]elsedrawLine(False)#数字5、6不显示中间线段(g段)
t.left(180)#左转180度,调整方向(回到初始方向)
t.penup()#抬笔
t.fd(20)#前进20像素(数字间的间隔)
defdrawDate(date):
?#定义了一个名为?drawDate?的函数,该函数接收一个参数?date?,预期?date?是包含日期和时间相关字符的字符串。
t.pencolor(red)foriindate:
?#t.pencolor(red)?:将?turtle?画笔的颜色设置为红色,后续绘图操作默认以红色进行。
#foriindate:?:对传入的?date?字符串中的每个字符进行遍历。ifi==_:
t.write(年,font=(Arial,18,normal))t.pencolor(green)t.fd(40)
?#当遍历到的字符?i?为?_?时:t.write(年,font=(Arial,18,normal))?:使用Arial字体、字号18、常规样式,在绘图窗口中写入汉字?年?。t.pencolor(green)?:将画笔颜色更改为绿色。t.fd(40)?:让画笔向前移动40个单位距离。elifi===:
t.write(月,font=(Arial,18,normal))t.pencolor(blue)t.fd(40)
?#当字符?i?为?=?时:写入汉字?月?,将画笔颜色改为蓝色,画笔向前移动40个单位。elifi==+