我赌你没见过这么酷的python日期绘制效果,拿来做练手项目再合适不过了,既好看又好用...

效果图

静态效果图

动态效果图

源代码

import turtle, time

# 绘制一段空隙
def drawGap():
    turtle.penup()
    turtle.fd(5)

# 绘制线条 
def drawLine(draw):
    # 在每段线条的前面留一点空
    drawGap()
    # 如果参数为真就画,否则就不画
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    # 在每段线条的后面留一点空
    drawGap()
    turtle.right(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)
    # 和后面的数字隔开距离 
    turtle.penup()
    turtle.fd(20)

# 解析日期字符串
def drawDate(date):
    turtle.pencolor("red")
    for i in date:
        if i == '年':
            turtle.write('年',font=("Arial",18,"normal"))
            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,350)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(5)
    # 日期格式化
    drawDate(time.strftime("%Y年%m月%d日",time.gmtime()))
    # 隐藏那个箭头
    turtle.hideturtle()
    turtle.done()

# 调用主函数
main()

你可能感兴趣的:(我赌你没见过这么酷的python日期绘制效果,拿来做练手项目再合适不过了,既好看又好用...)