Python turtle draws the date and time of the seven-segment digital tube (note)

import turtle,time
# 绘制单段数码管
#每次画笔描绘 真假 长度 描绘完成之后向右旋转角度
def drawGap():#每段描绘空格5像素
    turtle.penup()
    turtle.fd(5)
def drawLine(draw):#每一笔描绘的过程
    drawGap()
    turtle.pendown() if draw else turtle.penup()# 如果draw是真 画笔落下  假 画笔抬起 
    turtle.fd(40)#向前前进40像素
    drawGap()
    turtle.right(90)#向右转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)# 绘制完毕一个 那么 这时的方向是向左的  旋转180度 向右
    turtle.penup()#抬起画笔 
    turtle.fd(20)#向前隔开20像素
def drawDate(date):#date为日期 格式如'2021-03=01+'
    turtle.pencolor("red")#默认红色为年
    for i in date:#循环每个字符串
        if i =="-":
            turtle.write("年",font=("Arial",18,"normal"))#描写的字符串 字体 大小
            turtle.pencolor("green")#字体颜色
            turtle.fd(40)#向前进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,350,200,200)#桌面的窗口大小宽度为800 高度350 距离桌面左上角的高度200左边宽度200
    turtle.penup()
    turtle.fd(-300)#向中心点左移300像素开始
    turtle.pensize(5)#画笔宽度5像素
    # drawDate("2021-03=18+")#设定固定的字符串
    #自定义则为
    # drawDate = input("请输入日期【年月日】如:2021-03=18+")
    #自动获取时间 
    #  time strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间
    # time.strftime(<填充格式>,<gmtime() 函数将一个时间戳转换为UTC时区>)
    drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))
    turtle.hideturtle()#隐藏画笔的turtle形状
    turtle.done()#必须是乌龟图形程序中的最后一个语句
#调用函数
main()

Guess you like

Origin blog.csdn.net/weixin_47021806/article/details/115019711