七段数码管

import turtle
def drawLine (draw):     #定义一个函数,只要满足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:
            digit = eval(i)    #通过eval()函数来将传进来的字符或字符串转换为整数
            drawDigit(digit)   #调用函数drawDigit()来执行每个数字的绘制

def  main():
      turtle.setup(800,350,200,200)   #设定画布的大小,位置
      turtle.penup()
      turtle.fd(-300)
      turtle.pensize(5)
      drawDate('20201010')
      turtle.hideturtle()
      turtle.done()
main()  #调用主函数

 

七段数码管绘制步骤

    引入turtle库

    -一个数字的绘制

    -多个数字的绘制

    -时间数码管的绘制

import time
import turtle


def drawGap():
    turtle.penup()
    turtle.fd(5)


def drawLine(draw):  # 定义一个函数,只要满足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):  # date为日期,格式为'%Y-%m=%d+'
    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()  # 调用主函数

优化后的时间数码管显示

      最近作业太多了,不得不压缩了博客质量

posted @ 2020-11-04 18:35  nilinwang  阅读(116)  评论(0)    收藏  举报