python学习实例7 七段数码管的绘制

学习目标:

理解函数的基本知识,清楚函数的调用过程 巩固复习turtle绘图体系

代码展示:

import turtle,datetime  
 
def drawGap():#画数码管间隔
    turtle.penup()
    turtle.fd(5)
    
def drawline(draw):#画单条数码管
    drawGap()
    turtle.pendown()
    if(draw==False):
        turtle.penup()
    turtle.fd(40)
    drawGap()
    turtle.right(90)
    
def drawdight(dight):#根据数字绘制对应数字的数码管
    if dight in [2,3,4,5,6,8,9]:
        drawline(True)
    else:
        drawline(False)
    if dight in [0,1,3,4,5,6,7,8,9]:
        drawline(True)
    else:
        drawline(False)
    if dight in [0,2,3,5,6,8]:
        drawline(True)
    else:
        drawline(False)
    if dight in [0,2,6,8]:
        drawline(True)
    else:
        drawline(False)
    turtle.left(90)
    if dight in [0,4,5,6,8,9]:
        drawline(True)
    else:
        drawline(False)
    if dight in [0,2,3,5,6,7,8,9]:
        drawline(True)
    else:
        drawline(False)
    if dight in [0,1,2,3,4,7,8,9]:
        drawline(True)
    else:
        drawline(False)
    turtle.setheading(0)
    turtle.fd(25)
 
def drawdata(data):#根据日期画出对应数字
    turtle.color("red")
    for i in data:
        if i==+:
            turtle.write(年,font=("宋体", 24, "normal"))
            turtle.color("green")
            turtle.fd(30)
        elif i==-:
            turtle.write(月,font=("宋体", 24, "normal"))
            turtle.color("blue")
            turtle.fd(30)
        elif i==*:
            turtle.write(日,font=("宋体", 24, "normal"))
        else:
            drawdight(eval(i))
            
def main():
    turtle.setup(800,500)
    turtle.penup()
    turtle.fd(-350)
    turtle.pendown()
    turtle.hideturtle()
    turtle.pensize(6)
    turtle.speed(9)
    drawdata(datetime.datetime.now().strftime(%Y+%m-%d*))
    a=input()
main()
经验分享 程序员 微信小程序 职场和发展