Python繪制七段數(shù)碼管實(shí)例代碼
七段數(shù)碼管(seven-segmentindicator)由7段數(shù)碼管拼接而成,每段有亮或不亮兩種情況,改進(jìn)型的七段數(shù)碼管還包括一個(gè)小數(shù)點(diǎn)位置
繪制模式:
input:輸入當(dāng)前日期的數(shù)字形式
process:根據(jù)每個(gè)數(shù)字繪制七段數(shù)碼管表示
output:繪制當(dāng)前日期的七段數(shù)碼管表示
示例一:
#DrawSevenSegDisplay.py import turtle, datetime def drawLine(draw): #繪制單段數(shù)碼管 turtle.pendown() if draw else turtle.penup() turtle.fd(40) turtle.right(90) def drawDigit(digit): #根據(jù)數(shù)字繪制七段數(shù)碼管 drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): #獲得要輸出的數(shù)字 for i in date: drawDigit(eval(i)) #注意: 通過eval()函數(shù)將數(shù)字變?yōu)檎麛?shù) def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate(datetime.datetime.now().strftime('%Y%m%d')) turtle.hideturtle() main()
效果展示:
示例二:
#DrawSevenSegDisplay.py import turtle, datetime def drawGap(): #繪制數(shù)碼管間隔 turtle.penup() turtle.fd(5) def drawLine(draw): #繪制單段數(shù)碼管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90) def drawDigit(d): #根據(jù)數(shù)字繪制七段數(shù)碼管 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()
效果展示:
總結(jié)
以上就是本文關(guān)于Python繪制七段數(shù)碼管實(shí)例代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
如何在python中實(shí)現(xiàn)ECDSA你知道嗎
這篇文章主要為大家介紹了python中實(shí)現(xiàn)ECDSA,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助,希望能夠給你帶來幫助2021-11-11Python使用random模塊生成隨機(jī)數(shù)操作實(shí)例詳解
這篇文章主要介紹了Python使用random模塊生成隨機(jī)數(shù)操作,結(jié)合具體實(shí)例形式詳細(xì)分析了random模塊生成隨機(jī)數(shù)的各種常用技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09numpy系列之?dāng)?shù)組重塑的實(shí)現(xiàn)
本文主要介紹了numpy數(shù)組重塑。所謂數(shù)組重塑就是更改數(shù)組的形狀,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Python如何快速生成本項(xiàng)目的requeirments.txt實(shí)現(xiàn)
本文主要介紹了Python如何快速生成本項(xiàng)目的requeirments.txt實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python中使用logging模塊代替print(logging簡明指南)
這篇文章主要介紹了Python中使用logging模塊代替print的好處說明,主旨是logging模塊簡明指南,logging模塊的使用方法介紹,需要的朋友可以參考下2014-07-07OpenCV Python實(shí)現(xiàn)拼圖小游戲
這篇文章主要為大家詳細(xì)介紹了OpenCV Python實(shí)現(xiàn)拼圖版小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從序列中移除重復(fù)項(xiàng)且保持元素間順序不變的方法
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從序列中移除重復(fù)項(xiàng)且保持元素間順序不變的方法,涉及Python針對列表與字典的元素遍歷、判斷、去重、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03