Python 七段數碼管

2021-10-04 20:35:52 字數 4338 閱讀 2919

缺點:七段數碼管間無間隔不美觀,沒有「年」「月」「日」字樣不直觀,不能表示系統時間需手動輸入

import turtle

defdrawline

(draw)

:#繪製單段數碼管

turtle.pendown(

)if draw else turtle.penup(

) turtle.fd(40)

turtle.right(90)

defdrawdigit

(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

,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)

#為繪製後續數字確定位置

defdrawdate

(date)

:#獲得要輸出的數字

for i in date:

drawdigit(

eval

(i))

#通過eval()函式將數字變為整數

優化後:

import turtle, time

defdrawgap()

: turtle.penup(

) turtle.fd(5)

defdrawline

(draw)

:#繪製單段數碼管

drawgap(

) turtle.pendown(

)if draw else turtle.penup(

) turtle.fd(40)

drawgap(

) turtle.right(90)

defdrawdigit

(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

,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)

#為繪製後續數字確定位置

defdrawdate

(date)

:#獲得要輸出的數字 data為日期,格式為'%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))

#通過eval()函式將數字變為整數

繪製七段數碼管

seven digits draw v1.0 第一,繪製線 第二,繪製七段數碼管組成的數字 第三,繪製優化數碼管間距 第四,繪製多組數字 第五,獲取系統時間 第六,主函式執行程式。如下 import turtle as t import time def drawline draw drawgap ...

七段數碼管繪製

步驟1 繪製單個數字對應的數碼管 步驟2 獲得一串數字,繪製對應的數碼管 步驟2 獲得當前系統時間,繪製對應的數碼管 步驟1 繪製單個數字對應的數碼管 基本問題是繪製一條線,可將其定義為乙個基本函式 def drawline draw turtle.pendown if draw else turt...

七段數碼管繪製

七段數碼管繪製 import turtle as t import time as t def drawgap 繪製數碼管的間隔 t.penup t.fd 5 def drawline draw 繪製單段數碼管,draw為true時,則實畫 drawgap t.pendown if draw els...