效果展示:
实现代码:
import turtle,time
def drawGap():
turtle.speed(0) #设置画笔速度 “fastest”:0 "fast":10 "normal":6 "slow":3 "slowest":1
#turtle.Turtle().screen.delay(0) #画笔速度无延迟
turtle.penup()
turtle.fd(5)
def drawLine(draw): #绘制单段数码管
drawGap()
turtle.speed(0)
#turtle.Turtle().screen.delay(0)
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(digit): #根据数字绘制七段数码管
drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup() #为绘制后续数字确定位置
turtle.fd(20) #为绘制后续数字确定位置
def drawDate(date):
turtle.pencolor("red")
for i in date:
if i=='+':
turtle.write("年",font=("Arial",18,"normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i=='-':
turtle.write("月",font=("Arial",18,"normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i=='*':
turtle.write("日",font=("Arial",18,"normal"))
turtle.pencolor("red")
turtle.fd(70)
elif i=='$':
turtle.write("时",font=("Arial",18,"normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i=='&':
turtle.write("分",font=("Arial",18,"normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i=='@':
turtle.write("秒",font=("Arial",18,"normal"))
else:
drawDigit(eval(i))
def main(): #主函数
turtle.setup(1600,1000,0,0)
turtle.penup()
turtle.left(90)
turtle.fd(200)
turtle.right(90)
turtle.fd(-600)
turtle.pensize(5)
#drawDate("2019+02-03*")
drawDate(time.strftime("%Y+%m-%d*%H$%M&%S@",time.gmtime()))
turtle.hideturtle()
turtle.done()
main()