用Python繪製七段數碼管

2021-08-11 23:01:24 字數 2739 閱讀 6376

題目:

數碼管是一種**便宜、使用簡單的發光電子器件,廣泛應用在**較低的電子類產品中,其中,七段數碼管最為常用。七段數碼管

(seven-segment indicator)由7 段數碼管拼接而成,每段有亮或不亮兩種情況,改進型的七段數碼管還包括乙個小數點位置,如圖1 所示。

圖 1:七段數碼管的結構圖

七段數碼管能形成27=128 種不同狀態,其中部分狀態能夠顯示易於人們理解的數字或字母含義,因此被廣泛使用。圖2 給出了十六進製制中16 個字元的七段數碼管表示。

圖 2:十六進製制中16 個字元的七段數碼管表示

請採用turtle 庫並使用函式封裝繪製七段數碼管,顯示當前系統日期和時間。該問題的ipo 描述如下:輸入:當前日期的數字形式處理:根據每個數字繪製七段數碼管表示輸出:繪製當前日期的七段數碼管表示程式的預期執行效果如圖3 和圖4 所示,與兩個效果中任何乙個相似均可。

原始碼:

'''

created on dec 5, 2017

@author: qizhao

'''import turtle,datetime

def drawgap():#畫數碼管間隔

turtle.penup()

turtle.fd(5)

def drawline(flag):#畫單條數碼管

drawgap()

turtle.pendown()

if(flag==false):

turtle.penup()

turtle.fd(40)

drawgap()

turtle.right(90)

def drawdight(dight):#根據數字繪製對應數字的數碼管

if dight in [2,3,4,5,6,8,9]:

drawline(true)

else:

drawline(false)

if dight in [0,1,3,4,5,6,7,8,9]:

drawline(true)

else:

drawline(false)

if dight in [0,2,3,5,6,8]:

drawline(true)

else:

drawline(false)

if dight in [0,2,6,8]:

drawline(true)

else:

drawline(false)

turtle.left(90)

if dight in [0,4,5,6,8,9]:

drawline(true)

else:

drawline(false)

if dight in [0,2,3,5,6,7,8,9]:

drawline(true)

else:

drawline(false)

if dight in [0,1,2,3,4,7,8,9]:

drawline(true)

else:

drawline(false)

turtle.setheading(0)

turtle.fd(25)

def drawdata(data):#根據日期畫出對應數字

turtle.color("red")

for i in data:

if i=='+':

turtle.write('年',font=("宋體", 24, "normal"))

turtle.color("green")

turtle.fd(30)

elif i=='-':

turtle.write('月',font=("宋體", 24, "normal"))

turtle.color("blue")

turtle.fd(30)

elif i=='*':

turtle.write('日',font=("宋體", 24, "normal"))

else:

drawdight(eval(i))

def main():

turtle.setup(800,500)

turtle.penup()

turtle.fd(-350)

turtle.pendown()

turtle.hideturtle()

turtle.pensize(6)

turtle.speed(9)

drawdata(datetime.datetime.now().strftime('%y+%m-%d*'))

a=input()

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