首页 > 技术文章 > 可显示及时时间的七段数码管小程序

jiangxianseng 2019-10-24 19:34 原文

即时时间七段数码管的编写

对于初学者,这段代码值得敲一下,里面包含两个小模块包(海龟和时间),python函数的定义和内嵌,以及一些简单语法的应用,适合初学者融合基础知识所用。

import turtle         
import time             # 调取模块包
turtle.setup(900,600)
t = turtle.Pen()
t.shape("turtle")

def drawa():     # 画间隔
    t.up()
    t.fd(5)
def draw(flag):
    drawa()
    if flag:
        t.down()
    else:
        t.up()
    t.fd(10)
    drawa()
    t.right(90)
def drawlin(num):
    t.speed(0)
    draw(True) if num in [2, 3, 4, 5, 6, 8, 9] else draw(False)
    draw(True) if num in [0, 1, 3, 4, 5, 6, 7, 8, 9] else draw(False)
    draw(True) if num in [0, 2, 3, 5, 6, 8, 9] else draw(False)
    draw(True) if num in [0, 2, 6, 8, ] else draw(False)
    t.left(90)
    draw(True) if num in [0, 4, 5, 6, 8, 9] else draw(False)
    draw(True) if num in [0, 2, 3, 5, 6, 7, 8, 9] else draw(False)
    draw(True) if num in [0, 1, 2, 3, 4, 7, 8, 9] else draw(False)
    t.seth(0)
    t.up()
    t.fd(30)
    # if num in [2, 3, 4, 5, 6, 8, 9]:
    #     t.down()
    #     t.fd(40)
    #     t.right(90)
    # else:
    #     t.up()
    #     t.fd(40)
    #     t.right(90)
    # if num in [0, 1, 3, 4, 5, 6, 7, 8, 9]:     #循环代码太多可以抽出来新定义一个函数     dif draw(flag)
    #     t.down()
    #     t.fd(40)
    #     t.right(90)
    # else:
    #     t.up()
    #     t.fd(40)
    #     t.right(90)
def program():
    t.up()
    t.goto(-250,200)
    t.down()
    t.pencolor("red")
    t.write("程序员节日快乐",font=("Arial", 60, "normal"))
    t.hideturtle()

def kong1():           # 年月日的调整
    t.right(90)
    t.fd(20)
    t.left(90)
def kong2():           # 时分秒的调整
    t.left(90)
    t.fd(20)
    t.seth(0)
    t.fd(40)
def get_data(data):
    for i in data:
        if i == "/":    # 对/进行判断
            kong1()
            t.pencolor("orange")
            t.write("年",font=("Arial", 20, "normal"))   # font=("Arial", 20, "normal")表示配置字体
            kong2()
        elif i == "-":                                       # 对-进行判断
            kong1()
            t.pencolor("pink")
            t.write("月", font=("Arial", 20, "normal"))
            kong2()
        elif i == "*":                                        # 对*进行判断
            kong1()
            t.pencolor("blue")
            t.write("日", font=("Arial", 20, "normal"))    
            kong2()
            t.up()
            t.goto(-150, -100)
                                                  
        elif i == ".":                                      # 对/进行判断
            kong1()
            t.write("时",font=("Arial",20, "normal"))
            t.color("yellow")
            kong2()
        elif i == "_":                                       # 对-进行判断
            kong1()
            t.write("分", font=("Arial", 20, "normal"))
            t.color("brown")
            kong2()
        elif i == "$":                                        # 对*进行判断
            kong1()
            t.write("秒", font=("Arial",20, "normal"))   # font=()表示配置字体
            kong2()
        else:
            drawlin(eval(i))

def main():     # 主函数
    t.up()
    t.bk(200)
    t.pensize(5)
    t.color("red")
    get_data(time.strftime("%Y/%m-%d*%H.%M_%S$",time.gmtime()))     # 通过time包调取实时日期
    program()

main()
turtle.mainloop()

推荐阅读