首先,全部代码如下:
import turtle , datetime , time
def drawgap():
turtle.penup()
turtle.fd(5)
def drawline(draw):
drawgap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(30)
drawgap()
turtle.right(90)
def drawdigit(d):
drawline(True) if d in [2,3,4,5,6,8,9] else drawline(False)
drawline(True) if d in [0,1,3,4,5,6,7,8,9] else drawline(False)
drawline(True) if d in [0,2,3,5,6,8,9] else drawline(False)
drawline(True) if d in [0,2,6,8] else drawline(False)
turtle.left(90)
drawline(True) if d in [0,4,5,6,8,9] else drawline(False)
drawline(True) if d in [0,2,3,5,6,7,8,9] else drawline(False)
drawline(True) if d in [0,1,2,3,4,5,6,7,8,9] else drawline(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawdate(date):
turtle.pencolor("black")
for i in date:
if i=='-':
turtle.write('年',font=("Arial",18,"normal"))
turtle.fd(40)
elif i=='=':
turtle.write('月',font=("Arial",18,"normal"))
turtle.fd(40)
elif i=='+':
turtle.write('日',font=("Arial",18,"normal"))
turtle.fd(40)
elif i==':':
turtle.write(':',font=("Arial",18,"normal"))
turtle.fd(40)
else:
drawdigit(eval(i))
def main ():
turtle.setup(800,350,200,200)
turtle.penup()
turtle.goto(-500,0)
turtle.pensize(5)
turtle.delay(0)
turtle.speed(0)
drawdate(datetime.datetime.now().strftime('%Y-%m=%d+%H:%M:%S'))
turtle.hideturtle()
turtle.pencolor("white")
turtle.pensize(100)
turtle.pendown()
time.sleep(0.1)
turtle.goto(-500,0)
turtle.seth(0)
for i in range (3600):
main()
其中,draw digit函数是用来画七段管的函数,每个七段管画笔遵循固定的运动方式,并检测目前的数字是否需要在路径填图,例如”drawline(True) if d in [2,3,4,5,6,8,9] else drawline(False)“是画笔运动的第一步,是七段管中中间的那一横,2,3,4,5,6,8,8需要在此填图。
drawdate(datetime.datetime.now().strftime('%Y-%m=%d+%H:%M:%S'))
接下来就是main函数中用datetime函数获取当前时间并传参给drawdate函数处理。
其中%Y表示当前年份;%m表示月份;%d表示日期;%H,%M,%S则分别表示时分秒
(秒数正在打印)