7段数码管绘制
代码如下:
1 import turtle, datetime
2
3 def drawGap(): # 绘制数码管间隔
4 turtle.penup()
5 turtle.fd(5)
6
7 def drawLine(draw): # 绘制单段数码管
8 drawGap()
9 turtle.pendown() if draw else turtle.penup()
10 turtle.fd(40)
11 drawGap()
12 turtle.right(90)
13
14 def drawDigit(d): # 根据数字绘制七段数码管
15 drawLine(True) if d in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
16 drawLine(True) if d in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
17 drawLine(True) if d in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
18 drawLine(True) if d in [0, 2, 6, 8] else drawLine(False)
19 turtle.left(90)
20 drawLine(True) if d in [0, 4, 5, 6, 8, 9] else drawLine(False)
21 drawLine(True) if d in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
22 drawLine(True) if d in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
23 turtle.left(180)
24 turtle.penup()
25 turtle.fd(20)
26
27 def drawDate(date):
28 turtle.pencolor("red")
29 for i in date:
30 if i == '+':
31 turtle.write('年', font=("Arial ", 36, "normal"))
32 turtle.pencolor("green")
33 turtle.fd(40)
34 elif i == '-':
35 turtle.write('月', font=("Arial", 36, "normal"))
36 turtle.pencolor("blue")
37 turtle.fd(40)
38 elif i == '*':
39 turtle.write('日', font=("Arial", 36, "normal"))
40 turtle.pencolor('red')
41 turtle.fd(40)
42 elif i == '/':
43 turtle.write('时', font=("Arial", 36, "normal"))
44 turtle.pencolor('green')
45 turtle.fd(40)
46 elif i == '!':
47 turtle.write('分', font=("Arial", 36, "normal"))
48 turtle.pencolor('blue')
49 turtle.fd(40)
50 elif i == '@':
51 turtle.write('秒', font=("Arial", 36, "normal"))
52 else:
53 drawDigit(eval(i))
54 turtle.exitonclick()
55
56 def main():
57 turtle.setup(1366, 350, 0, 200)
58 turtle.penup()
59 turtle.fd(-600)
60 turtle.pensize(5)
61 drawDate(datetime.datetime.now().strftime('%Y+%m-%d*%H/%M!%S@'))
62 turtle.hideturtle()
63
64 main()
代码运行结果如下:

浙公网安备 33010602011771号