超有趣的Python画图——绘制日期

💻前言


以下代码试着自己运行一下✏️,会有意想不到的效果哦🤩

✨简陋 简单写法

import turtle


def drawline(draw):
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    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):
    for i in date:
        drawdigit(eval(i))


def main():
    turtle.setup(800, 350, 200, 200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(5)
    drawdate(20200421)
    turtle.hideturtle()
    turtle.done()


main()

🔥运行结果

🔮高级写法

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, 200, 200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(5)
    drawdate(time.strftime(%Y-%m=%d+, time.gmtime()))
    turtle.hideturtle()
    turtle.done()


main()

🎉运行结果

经验分享 程序员 微信小程序 职场和发展