Python绘制七段数码管实例代码

时间:2022-10-06 08:27:23

七段数码管(seven-segmentindicator)由7段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置

绘制模式:

input:输入当前日期的数字形式

process:根据每个数字绘制七段数码管表示

output:绘制当前日期的七段数码管表示

Python绘制七段数码管实例代码

示例一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#DrawSevenSegDisplay.py
import turtle, datetime
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)) #注意: 通过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()

效果展示:

Python绘制七段数码管实例代码

示例二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#DrawSevenSegDisplay.py
import turtle, datetime
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(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 [0,2,3,5,6,7,8,9] 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):
  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(-350)
  turtle.pensize(5)
  drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))
  turtle.hideturtle()
main()

效果展示:

Python绘制七段数码管实例代码

总结

以上就是本文关于Python绘制七段数码管实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://blog.csdn.net/sinat_38163598/article/details/69787843