import turtle#导入库
import time
def drawGap(): #定义函数,绘制数码管之间的间隙
turtle.penup()
turtle.fd(5)
def drawLine(draw):
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(digit): #如果draw是True,我们就将turtle放到画布上,
#如果是False,我们将turtle抬起,那么我们走的路径就不会出现在画布上。
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("gold") if date[-1]=='@' else turtle.pencolor("red")
for i in date:
if i=='-':
turtle.right(90)
turtle.fd(18)
turtle.left(90)
turtle.write('年',font=("Arial",18,"normal"))
turtle.pencolor("green")
turtle.left(90)
turtle.fd(18)
turtle.right(90)
turtle.fd(40)
elif i=='=':
turtle.right(90)
turtle.fd(18)
turtle.left(90)
turtle.write('月',font=("Arial",18,"normal"))
turtle.pencolor("blue")
turtle.left(90)
turtle.fd(18)
turtle.right(90)
turtle.fd(40)
elif i== '+':
turtle.right(90)
turtle.fd(18)
turtle.left(90)
turtle.write('日',font=("Arial",18,"normal"))
turtle.pencolor("brown")
turtle.left(90)
turtle.fd(18)
turtle.right(90)
turtle.fd(40)
elif i== '<':
turtle.right(90)
turtle.fd(18)
turtle.left(90)
turtle.write('时',font=("Arial",18,"normal"))
turtle.pencolor("purple")
turtle.left(90)
turtle.fd(18)
turtle.right(90)
turtle.fd(40)
elif i== '>':
turtle.right(90)
turtle.fd(18)
turtle.left(90)
turtle.write('分',font=("Arial",18,"normal"))
turtle.left(90)
turtle.fd(18)
turtle.right(90)
turtle.fd(40)
elif i== '@':
turtle.pencolor("gold")
turtle.right(90)
turtle.fd(18)
turtle.left(90)
turtle.write('秒',font=("Arial",18,"normal"))
turtle.left(90)
turtle.fd(18)
turtle.right(90)
else:
drawDigit(eval(i))
def main():
turtle.setup(1600,350,200,200)
turtle.speed("fastest")
turtle.penup()
turtle.fd(-600)
turtle.pensize(5)
drawDate(time.strftime('%Y-%m=%d+%H<%M>',time.localtime()))
drawDate(time.strftime('%S@',time.localtime()))
turtle.hideturtle()
turtle.done()
main()
结果展示如下
七段数码管主要分为两个主要步骤
- 为了能在屏幕中画出来数码管的形式,我们需要引入绘图标准库——turtle库
- 在实现绘图功能之后,我们还需要能够获得系统的时间