一.基本思路:
步骤一:首先绘制单个数字对应的数码管
步骤二:获得一串数字,绘制对应的数码管
步骤三:获得当前系统时间,绘制对应的数码管
二.概念补充:
1.random()函数
1)描述:random()方法返回随机生成的一个实数,但是它的值只能在[0,1)范围内。
2)语法:
import random
random.random()
3)输出结果:
4)注意事项:
Random()是不能直接访问的,需要导入random模块。
2.time.strtime()函数
1)描述:time.strftime()函数收到以时间元组,并返回以可读字符串表示的当地时间。
2)语法:time.strftime(format[,t])
3)参数:
format—格式字符串
t---可选的参数t
4)返回值:返回以可读字符串表示的当地时间。
三.制作代码:
import turtle as t #导入turtle模块,简化为t
import random as r #导入随机模块,简化为r
import time
"""定义绘制线段"""
def drawLine(draw): #定义一个函数drawLine,形参draw
t.pendown() if draw else t.penup() #画笔落下,做好准备
t.pencolor(r.random(),r.random(),r.random()) #画笔颜色随机生成
t.fd(80)
t.right(90)
参考图:
"""定义绘制0-9"""
def drawDigit(i): #定义一个函数drawDigit,形参i
#画第1段:
drawLine(True) if i in [2,3,4,5,6,8,9] else drawLine(False)
#画第2段:
drawLine(True) if i in [0,1,3,4,5,6,8,9] else drawLine(False)
#画第3段
drawLine(True) if i in [0,2,3,5,6,8] else drawLine(False)
#画第四段
drawLine(True) if i in [0,2,6,8] else drawLine(False)
t.left(90) #每画一段之后就要转90°,画到第四段是一个路口,需要向左转90°使其继续直行。
#画第五段
drawLine(True) if i in [0,4,5,6,8,9] else drawLine(False)
#画第六段
drawLine(True) if i in [0,2,3,5,7,8,9] else drawLine(False)
#画第七段
drawLine(True) if i in [0,1,2,3,4,7,8,9] else drawLine(False)
t.left(180) #画笔改为反方向旋转180度。
t.penup()
t.fd(20) #为绘制第二个数字确定位置,向右移动20px
"""定义绘制日期的所有数字函数"""
def drawDate(date):
for i in date:
drawDigit(eval(i))
"""定义主函数"""
def main():
t.setup(900,900)
t.pensize(5)
t.penup()
t.fd(-400)
drawDate(time.strftime("%Y%m%d"))
t.hideturtle()
t.done()
main() #函数的调用