Python学习之七段数码管绘制

话不多说,源代码。

#e7.1drawsevensegdisplay.py
import turtle,datetime
def drawline(draw):#绘制单段数码管
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    turtle.right(90)
def drawdigit(d):#根据数字单段数码管
    drawline(True) if d in [2,3,4,5,6,8,9] else drawline(False)
    drawline(True) if d in [0,1,3,4,5,6,7,8,9] else drawline(False)
    drawline(True) if d in [0,2,3,5,6,8,9] else drawline(False)
    drawline(True) if d in [0,2,6,8] else drawline(False)
    turtle.left(90)
    drawline(True) if d in [0,4,5,6,8,9] else drawline(False)
    drawline(True) if d in [2,3,5,6,7,8,9,0] else drawline(False)
    drawline(True) if d 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))#注意:通过eval()函数将数字变为整数
def main():
    turtle.setup(800,350,200,200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(5)
    drawdate(datetime.datetime.now().strftime('%Y%m%d'))
    turtle.hideturtle()
main()

代码首先用函数分别实现了绘制单段数码管,然后根据数字单段数码管,输入想要的数字,用主函数设置了pen的基本属性,让我们详细来看。(注意引入了turtle丶datetime库)

首先看绘制单段数码管的代码:

def drawline(draw):#绘制单段数码管
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    turtle.right(90)

决定一段数码管是否要画,然后转向另一段数码管。

根据数字单段数码管:

def drawdigit(d):#根据数字单段数码管
    drawline(True) if d in [2,3,4,5,6,8,9] else drawline(False)
    drawline(True) if d in [0,1,3,4,5,6,7,8,9] else drawline(False)
    drawline(True) if d in [0,2,3,5,6,8,9] else drawline(False)
    drawline(True) if d in [0,2,6,8] else drawline(False)
    turtle.left(90)
    drawline(True) if d in [0,4,5,6,8,9] else drawline(False)
    drawline(True) if d in [2,3,5,6,7,8,9,0] else drawline(False)
    drawline(True) if d 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))#注意:通过eval()函数将数字变为整数

想要输出的数字由datetime.datetime.now()提供,对其中每一个数字提出来,进行绘画。(注意使用eval()函数将字符串转为整数)

使用main函数设置pen属性,以及调用函数。

你可能感兴趣的:(Python,Python)