前些天學習了嵩天老師的七段數碼管的繪製,覺得很有趣,就寫來了。
1.ipo描述;
輸入:當前日期的數字形式
處理:根據每個數字繪製七段數碼管的表示
輸出:繪製當前日期的七段數碼管表示
2.學習目的:
理解使用turtle庫,
理解函式及其封裝的價值
**如下:
#drawsevensegdisplay.py
import turtle, datetime
def drawgap():#繪製數碼管間隔
turtle.penup()
turtle.fd(5)
def drawline(draw):#繪製單段數碼管
drawgap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawgap()
turtle.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)
turtle.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)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawdate(date):
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(-350)
turtle.pensize(5)
drawdate(datetime.datetime.now().strftime('%y-%m=%d+'))
turtle.hideturtle()
main()
執行後如圖所示:
drawline(true) if d in [2,3,4,5,6,8,9] else drawline(false)
這行**也可以表示為:
if d in [2, 3, 4, ,5, 6, 8, 9]
drawline (true)
else:
drawline(false)
drawline()函式根據輸出引數的值(true或false),決定是否抬起畫筆
drawdate()函式將更長數字分解為單個數字,進一步呼叫drawdigit()分別畫質每個數字。
main()函式將啟動窗體大小、設定畫筆寬度、設定系統弄時間等功能封裝在一起。
繪製七段數碼管
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...