七段數(shù)碼管版本一
#SevenDigitsDrawV1.py
importturtle
defdrawLine(draw):???#繪制單段數(shù)碼管
????turtle.pendown()?ifdraw?elseturtle.penup()
????turtle.fd(40)
????turtle.right(90)
defdrawDigit(digit):?#根據(jù)數(shù)字繪制七段數(shù)碼管
????drawLine(True)?ifdigit?in[2,3,4,5,6,8,9]?elsedrawLine(False)
????drawLine(True)?ifdigit?in[0,1,3,4,5,6,7,8,9]?elsedrawLine(False)
????drawLine(True)?ifdigit?in[0,2,3,5,6,8,9]?elsedrawLine(False)
????drawLine(True)?ifdigit?in[0,2,6,8]?elsedrawLine(False)
????turtle.left(90)
????drawLine(True)?ifdigit?in[0,4,5,6,8,9]?elsedrawLine(False)
????drawLine(True)?ifdigit?in[0,2,3,5,6,7,8,9]?elsedrawLine(False)
????drawLine(True)?ifdigit?in[0,1,2,3,4,7,8,9]?elsedrawLine(False)
????turtle.left(180)
????turtle.penup()
????turtle.fd(20)?
defdrawDate(date):??#獲得要輸出的數(shù)字
????fori?indate:
????????drawDigit(eval(i))??#通過eval()函數(shù)將數(shù)字變?yōu)檎麛?shù)
defmain():
????turtle.setup(800,?350,?200,?200)
????turtle.penup()
????turtle.fd(-300)
????turtle.pensize(5)
????drawDate('20181010')
????turtle.hideturtle()
????turtle.done()
main()
七段數(shù)碼管版本二
#SevenDigitsDrawV2.py
importturtle,?time
defdrawGap():?#繪制數(shù)碼管間隔
????turtle.penup()
????turtle.fd(5)
defdrawLine(draw):???#繪制單段數(shù)碼管
????drawGap()
????turtle.pendown()?ifdraw?elseturtle.penup()
????turtle.fd(40)
????drawGap()
????turtle.right(90)
defdrawDigit(d):?#根據(jù)數(shù)字繪制七段數(shù)碼管
????drawLine(True)?ifd?in[2,3,4,5,6,8,9]?elsedrawLine(False)
????drawLine(True)?ifd?in[0,1,3,4,5,6,7,8,9]?elsedrawLine(False)
????drawLine(True)?ifd?in[0,2,3,5,6,8,9]?elsedrawLine(False)
????drawLine(True)?ifd?in[0,2,6,8]?elsedrawLine(False)
????turtle.left(90)
????drawLine(True)?ifd?in[0,4,5,6,8,9]?elsedrawLine(False)
????drawLine(True)?ifd?in[0,2,3,5,6,7,8,9]?elsedrawLine(False)
????drawLine(True)?ifd?in[0,1,2,3,4,7,8,9]?elsedrawLine(False)
????turtle.left(180)
????turtle.penup()
????turtle.fd(20)
defdrawDate(date):
????turtle.pencolor("red")
????fori?indate:
????????ifi?=='-':
????????????turtle.write('年',font=("Arial",?18,?"normal"))
????????????turtle.pencolor("green")
????????????turtle.fd(40)
????????elifi?=='=':
????????????turtle.write('月',font=("Arial",?18,?"normal"))
????????????turtle.pencolor("blue")
????????????turtle.fd(40)
????????elifi?=='+':
????????????turtle.write('日',font=("Arial",?18,?"normal"))
????????else:
????????????drawDigit(eval(i))
defmain():
????turtle.setup(800,?350,?200,?200)
????turtle.penup()
????turtle.fd(-350)
????turtle.pensize(5)
#????drawDate('2018-10=10+')
????drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))
????turtle.hideturtle()
????turtle.done()
main()