7段数码管绘制

import turtle as t
import time
def popspace(): #单管间隔 
    t.penup() 
    t.fd(5) 
def popline(draw):   #画数码管
    popspace() 
    t.pendown() if draw else t.penup() 
    t.fd(40) 
    popspace() 
    t.right(90)
def popstart(d): #画数字数码管 
    popline(True) if d in [2,3,4,5,6,8,9] else popline(False) 
    popline(True) if d in [0,1,3,4,5,6,7,8,9] else popline(False) 
    popline(True) if d in [0,2,3,5,6,8,9] else popline(False) 
    popline(True) if d in [0,2,6,8] else popline(False) 
    t.left(90) 
    popline(True) if d in [0,4,5,6,8,9] else popline(False) 
    popline(True) if d in [0,2,3,5,6,7,8,9] else popline(False) 
    popline(True) if d in [0,1,2,3,4,7,8,9] else popline(False) 
    t.left(180) 
    t.penup() 
    t.fd(30)
def popdate(date): 
    t.pencolor((1,0.36,0.28))
    t.speed(9) 
    for i in date: 
        if i == '-': 
            t.write('',font=("Arial", 30, "normal")) 
            t.pencolor((0.93,0.51,0.93)) 
            t.fd(60) 
        elif i == '=': 
            t.write('',font=("Arial", 30, "normal")) 
            t.pencolor((0.5,0.5,0)) 
            t.fd(60) 
        elif i == '+': 
            t.write('',font=("Arial", 30, "normal"))
            t.pencolor((0.25,0.88,0.82))
            t.fd(40)
            #换行输出
            t.seth(-90)
            t.fd(100)
            t.seth(180)
            t.fd(700)
            t.seth(-90)
            t.fd(40)
            t.seth(0)
            t.fd(40)
        elif i == '*':
            t.write('',font=("Arial", 30, "normal"))
            t.pencolor((0.18,0.55,0.34))
            t.fd(60)
        else: 
            popstart(eval(i))
def main():
    t.setup(1000, 800, None,None) 
    t.penup() 
    t.fd(-350) 
    t.pensize(6) 
    popdate(time.strftime('%Y-%m=%d+%H*',time.localtime())) 
    t.hideturtle() 
main()

posted @ 2020-10-18 11:10  小松可可奈  阅读(198)  评论(0)    收藏  举报