以下是我的答案:
1 import turtle 2 import time 3 4 def drawGap(): 5 turtle.penup() 6 turtle.fd(5) 7 8 def drawLine(draw): 9 drawGap() 10 turtle.pendown() if draw else turtle.penup() 11 turtle.fd(40) 12 drawGap() 13 turtle.right(90) 14 15 def drawDigit(digit): 16 drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) 17 drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) 18 drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) 19 drawLine(True) if digit in [0,2,6,8] else drawLine(False) 20 turtle.left(90) 21 drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) 22 drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) 23 drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False) 24 turtle.left(180) 25 turtle.penup() 26 turtle.fd(20) 27 28 def drawDate(date): 29 turtle.pencolor("red") 30 for i in date: 31 drawDigit(eval(i)) 32 33 def main(): 34 turtle.tracer(False) 35 turtle.hideturtle() 36 turtle.setup(800,350,200,200) 37 turtle.penup() 38 turtle.fd(-270) 39 turtle.pensize(5) 40 drawDate(time.strftime("%Y%m%d",time.gmtime())) 41 turtle.done() 42 main()
下面是參考答案:
1 import turtle as t 2 import time 3 def drawGap(): #繪制數碼管間隔 4 t.penup() 5 t.fd(5) 6 def drawLine(draw): #繪制單段數碼管 7 drawGap() 8 t.pendown() if draw else t.penup() 9 t.fd(40) 10 drawGap() 11 t.right(90) 12 def drawDigit(d): #根據數字繪制七段數碼管 13 drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) 14 drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) 15 drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) 16 drawLine(True) if d in [0,2,6,8] else drawLine(False) 17 t.left(90) 18 drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) 19 drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) 20 drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) 21 t.left(180) 22 t.penup() 23 t.fd(20) 24 def drawDate(date): 25 t.pencolor("red") 26 for i in date: 27 drawDigit(eval(i)) 28 def main(): 29 t.setup(800, 350, 200, 200) 30 t.penup() 31 t.fd(-300) 32 t.pensize(5) 33 drawDate(time.strftime('%Y%m%d',time.gmtime())) 34 t.done() 35 main()
【參考代碼】
import turtle as t
import time
def drawGap(): #繪制數碼管間隔
t.penup()
t.fd(5)
def drawLine(draw): #繪制單段數碼管
drawGap()
t.pendown() if draw else t.penup()
t.fd(40)
drawGap()
t.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)
t.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)
t.left(180)
t.penup()
t.fd(20)
def drawDate(date):
t.pencolor("red")
for i in date:
drawDigit(eval(i))
def main():
t.setup(800, 350, 200, 200)
t.penup()
t.fd(-300)
t.pensize(5)
drawDate(time.strftime('%Y%m%d',time.gmtime()))
t.done()
main()