基本思路:
1.繪製單個數字對應的數碼管
2.獲得一串數字,繪製對應的數碼管
3.獲得當前系統時間,繪製對應的數碼管
首先,繪製單個數字對應的數碼管函式:
def
drawgap()
:#繪製數碼管間隔
turtle.penup(
) turtle.fd(5)
defdrawline
(draw)
: drawgap()if
(draw)
: turtle.pendown(
)else
: turtle.penup(
) turtle.fd(40)
turtle.right(
90)
之後,根據數字繪製七段數碼管:
def
drawdigit
(digit)
:#根據數字繪製七段數碼管
if digit in[2
,3,4
,5,6
,8,9
]:#1 drawline(
true
)else
: drawline(
false
)if digit in[0
,1,3
,4,5
,6,7
,8,9
]:#2 drawline(
true
)else
: drawline(
false
)if digit in[0
,2,3
,5,6
,8,9
]:#3 drawline(
true
)else
: drawline(
false
)if digit in[0
,2,6
,8]:
#4 drawline(
true
)else
: drawline(
false
) turtle.left(90)
#左轉90度
if digit in[0
,4,5
,6,8
,9]:
#5 drawline(
true
)else
: drawline(
false
)if digit in[0
,2,3
,5,6
,7,8
,9]:
#6 drawline(
true
)else
: drawline(
false
)if digit in[0
,1,2
,3,4
,7,8
,9]:
#7 drawline(
true
)else
: drawline(
false
) turtle.left(
180)
turtle.penup(
)#為繪製後續數字確定位置
turtle.fd(20)
#為繪製後續數字確定位置
將數字串轉換成單個數字:
def
drawdate
(date)
:for i in date:
drawdigit(
eval
(i))
定義主函式:
def
main()
: turtle.setup(
800,
350,
200,
200)
turtle.penup(
) turtle.fd(
-300
) turtle.pensize(10)
drawdate(
'20200630'
) turtle.hideturtle(
) turtle.done(
)
程式執行結果如下:
接下來,獲得當前系統時間,用於繪製對應的數碼管。
修改drawdate函式:
def
drawdate
(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))
主函式:
def
main()
: turtle.setup(
800,
350,
200,
200)
turtle.penup(
) turtle.fd(
-300
) turtle.pensize(10)
drawdate(time.strftime(
'%y-%m=%d+'
,time.gmtime())
) turtle.hideturtle(
) turtle.done(
)
修改後的程式結果如圖:
Python 七段數碼管
缺點 七段數碼管間無間隔不美觀,沒有 年 月 日 字樣不直觀,不能表示系統時間需手動輸入 import turtle defdrawline draw 繪製單段數碼管 turtle.pendown if draw else turtle.penup turtle.fd 40 turtle.right...
繪製七段數碼管
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...