七段数码管
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() # 调用主函数
优化后的时间数码管显示

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

浙公网安备 33010602011771号