1.1绘制单段数码管道间隙
def drawGap():
penup() #设置画笔飞行模式
fd(5) #画笔前进5像素
2.绘制单段数码管
def drawLine(draw):
drawGap() #调用间隙函数(画间隙)
if draw:
pendown() #如果函数参数draw为真时画笔工作
else:
penup() #否则画笔仍未飞行模式
fd(20) #画笔向前行进20像素
drawGap() #第二次调用间隙函数
right(90) #将画笔向下(前进向右)旋转90度
3.绘制单个数字数码管
def drawDigit(digit):
#画笔第1段数码管
pencolor(random(),random(),random()) #用随机函数设置画笔的颜色
drawLine(True) if digit in[2,3,4,5,6,8,9] else drawLine(False)
#用if...else表达式画第一段数码管
#画第2段数码管
pencolor(random(),random(),random()) #用随机函数设置画笔的颜色
drawLine(True) if digit not in [2] else drawLine(False)
#画第3段数码管
pencolor(random(),random(),random()) #用随机函数设置画笔的颜色
drawLine(True) if digit in[0.2,3,5,6,7,8,9] else drawLine(False)
#画第4段数码管
pencolor(random(),random(),random()) #用随机函数设置画笔的颜色
drawLine(True) if digit in[0,2,4,5,6,8,9] else drawLine(False)
left(90) #将画笔向上(前进向左)旋转90度
#画第5段数码管
pencolor(random(),random(),random()) #用随机函数设置画笔的颜色
drawLine(True) if digit in[0,4,5,6,8,9] else drawLine(False)
#画第6段数码管
pencolor(random(),random(),random()) #用随机函数设置画笔的颜色
drawLine(True) if digit in[0,2,3,4,7,8,9,] else drawLine(False)
#画第7段数码管
pencolor(random(),random(),random()) #用随机函数设置画笔的颜色
drawLine(True) if digit in[0,1,2,3,4,6,7,8,9,] else drawLine(False)
left(180) #将画笔反向(旋转180度)
penup() #将画笔设置飞行模式
fd(20) #将画笔前进20像素
4.获取绘制数字(先从键盘上输入数字日期,再从系统中获取数字日期)
def drawData(date):
for i in date:
if i=='_':
write('年',font=("楷体",20,"normal"))
fd(40)
elif i=='=':
write('月',font=("楷体",20,"normal"))
fd(40)
elif i=='+':
write('日',font=("楷体",20,"normal"))
fd(40)
elif i==':':
write('时',font=("楷体",20,"normal"))
fd(40)
elif i=='*':
write('分',font=("楷体",20,"normal"))
fd(40)
elif i=='$':
write('秒',font=("楷体",20,"normal"))
fd(40)
else:
drawDigit(eval(i))
#将获取的数字(从键盘上或者系统中)字符串转换数据类型
5.编写主函数(设置画布和画笔的属性等)
# In[6]:
def main():
setup(1500,350,0,200) #设置画布的宽和高已经圆点坐标(左上角x,y)
#bgcolor('black') #画布背景颜色为黑色
pensize(5)
speed(200) #画笔工作速度200PS
penup()
fd(-600) #将画笔向左移动600像素
#drawData(input('请输入您的生日数字:'))
drawData(time.strftime('%Y-%m=%d+%H:%M*%S$')) #从系统中获取相应格式的日期数字
hideturtle() #隐藏画笔
done() #关闭画笔功能