七段數碼管的繪製

2021-09-02 11:48:01 字數 2263 閱讀 7406

前些天學習了嵩天老師的七段數碼管的繪製,覺得很有趣,就寫來了。

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...