import turtle,time
def drawGap(): #绘制线与线的间距
turtle.penup()
turtle.fd(6)
def drawLine(draw): #绘制数码管的每一条线
drawGap() #当笔落下开始画时,空6个像素
turtle.pendown() if draw else turtle.penup() #判断True为画,False为抬笔浮空
turtle.fd(40) #向前画40像素
drawGap() #画完后抬笔,浮空时,空6个像素
turtle.right(90) #画完线后,指标向右旋转90度
def drawDigit(digit): #绘制数码管的每个数字
# if digit in [2,3,4,5,6,8,9]:
# drawLine(True)
# else:
# drawLine(False) 这个是下面的清晰版本,方便理解。下面是写在一行的格式。
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)
#上面是画完4条线,指标回到开始位置,需要向左旋转指标,才能向上画线
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) #调整指标,画完指标是 < 这个方向,需要向左或向右旋转180度,画第二个数字
turtle.penup()
turtle.fd(20) #浮空向前移动20像素(也就是两个数字间的距离是20像素)
def drawDate(date): #绘制日期
turtle.pencolor("red") #相当于修改了默认颜色为红色
for i in date: #下面的判断主要根据你输入或传过来的格式符号相对应(我这里传的系统当前时间,例:2019-4=23+)
if i == '-':
turtle.write('年',font=("Arial",18,"normal")) #通过write 设置字体和字号
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(800,800,200,200)
turtle.penup()
turtle.fd(-200)
turtle.pensize(5)
drawDate(time.strftime('%Y-%m=%d+',time.gmtime())) #设置时间格式
turtle.hideturtle() #画完后隐藏指标
#turtle.showturtle() #相反,画完后显示指标
turtle.done()
time.sleep(1)
main()