·文章結構>樣例及概覽
>函式框架分析
>功能發展
·樣例及概覽
七段數碼管,是訊號燈、電子錶等很多裝置的顯示形式。而利用python的turtle庫,我們也可以模擬著寫出乙個動態生成的七段數碼管,用來顯示日期、時間等等任何可以通過數字展示的東西。
下面的例子展示了乙個基本的日期顯示功能。
# 日曆(自定義日期、七段電子管實現)
import turtle as t
#前進步長
forward = 40
#間隔步長
interval = 20
def drawline(k):
t.pendown() if k else t.penup()
t.fd(forward)
t.right(90)
return
def drawnum(k):
#觀察各字元在數碼管中的展現形式,一共七條線,而有些數字在其中某條線時不必繪製
drawline(true) if k in [2,3,4,5,6,8,9] else drawline(false)
drawline(true) if k in [1,3,4,5,6,7,8,9,0] else drawline(false)
drawline(true) if k in [2,3,5,6,8,9,0] else drawline(false)
drawline(true) if k in [2,6,8,0] else drawline(false)
t.left(90)
drawline(true) if k in [4,5,6,8,9,0] else drawline(false)
drawline(true) if k in [2,3,5,6,7,8,9,0] else drawline(false)
drawline(true) if k in [1,2,3,4,7,8,9,0] else drawline(false)
t.left(180)
t.penup()
t.fd(interval)
t.pendown()
return
def main():
inf = "20190413"
#init
t.setup(800,400,0,0)
t.pensize(10)
t.pencolor("red")
t.penup()
t.seth(180)
t.fd(320)
t.pendown()
t.seth(0)
#control color and show character
cnt = 0
for i in inf:
cnt += 1
drawnum(eval(i))
if cnt == 4:
#set character with color
t.pencolor("black")
t.write("年")
t.penup()
t.fd(interval)
t.pendown()
#recover and transform color
t.pencolor("green")
elif cnt == 6:
#set character with color
t.pencolor("black")
t.write("月")
t.penup()
t.fd(interval)
t.pendown()
#recover and transform color
t.pencolor("pink")
elif cnt == 8:
#set character with color
t.pencolor("black")
t.write("日")
t.done()
return
main()
·函式框架分析
運用計算思維,我們很容易想出:只要能實現乙個數字的七段數碼管繪製,那麼我們就可以通過**復用將其擴充套件至任意個數的七段數碼管繪製。
「此時,我們將總任務拆封成了兩個小任務:1)單個數字七段數碼管繪製。2)重複多次用以繪製多個數字。」
針對2),我們簡單構想,只需要乙個字串用來存放數字,然後用迴圈來遍歷它,並將current value穿到1)所對應的方法中去就好了
針對1),我們再次將問題分治。
「新1)畫出七段數碼管其中的一段,即一條線。新2)重複七次用以繪製七段數碼管。」
針對新2),我們首先要把七段數碼管按一定順序分解為七筆。
針對新1),我們可以通過penup()、pendown()函式來控制是否畫出這一筆。而在除了第四步後每畫過一筆,我們就讓其右轉90度,為畫下一筆作準備。
完成以上分析後,我們就已經解出了這個問題,只需要用**實現它。
·發展在主函式main()中,我們可以將預定義的字串inf更改為乙個自定義模組。
在主函式main()中,我們可已修改年、月、日為時、分、秒,用以顯示時刻。
引入time庫來實時獲取日期及時間資訊。
在主函式main()的for迴圈中設定了不同數字所對應的顏色,可以自由更改為其他的。
繪製七段數碼管,turtle
繪製單段數碼管 import turtle import time def drawline draw turtle.pendown if draw else turtle.penup turtle.fd 40 turtle.right 90 根據數字繪製數碼管 def drawdigit digi...
python七段數碼管,turtle和time實現
使用turtle庫,time庫自動繪製七段數碼管,顯示當前日期 畫筆粗細2.5,繪製結束隱藏畫筆,線段間隔3 6,匯入時間模組,手動輸入日期改為自動獲取日期 import turtle as t import time 定義畫線or不畫線函式 def drawline draw t.pu t.fd ...
繪製七段數碼管
seven digits draw v1.0 第一,繪製線 第二,繪製七段數碼管組成的數字 第三,繪製優化數碼管間距 第四,繪製多組數字 第五,獲取系統時間 第六,主函式執行程式。如下 import turtle as t import time def drawline draw drawgap ...