亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python turtle繪圖教程之七段數(shù)碼管顯示數(shù)字和字母

 更新時(shí)間:2023年10月28日 11:18:49   作者:Corone  
這篇文章主要給大家介紹了關(guān)于Python turtle繪圖教程之七段數(shù)碼管顯示數(shù)字和字母的相關(guān)資料,Python是一種流行的編程語(yǔ)言,可用于編寫(xiě)各種類型的程序,在數(shù)碼管顯示器上數(shù)字8由7條不同的線條組成,需要的朋友可以參考下

一、運(yùn)行結(jié)果

二、程序設(shè)計(jì)

七段數(shù)碼管由7條線組成,以下圖所標(biāo)識(shí)的畫(huà)圖順序?yàn)闇?zhǔn)進(jìn)行程序設(shè)計(jì)。

首先導(dǎo)入turtle庫(kù)并將其重命名為t。

import turtle as t

定義函數(shù)drawGap()用于繪制間隙,通過(guò)將畫(huà)筆抬起,并向前移動(dòng)5個(gè)單位,來(lái)實(shí)現(xiàn)間隙的繪制。

def drawGap(): # 繪制間隙
    t.penup()
    t.fd(5) # 設(shè)置間隙大小

定義函數(shù)drawLine(draw)用于繪制線段,通過(guò)判斷參數(shù)draw的布爾值,決定是否下筆繪制線段。如果布爾值為True,則將畫(huà)筆放下,向前移動(dòng)40個(gè)單位;如果布爾值為False,則將畫(huà)筆抬起,向前移動(dòng)40個(gè)單位。然后調(diào)用drawGap()函數(shù)繪制間隙,并將畫(huà)筆右轉(zhuǎn)90度,準(zhǔn)備繪制下一段線。

def drawLine(draw): # 繪制數(shù)碼管中的一段線
     drawGap()
     t.pendown() if draw else t.penup()
     t.fd(40)
     drawGap()
     t.right(90)

之后,我們根據(jù)所要繪制的數(shù)字和字母定義函數(shù)drawDight(s),下圖是數(shù)字和字母的數(shù)碼管顯示圖。

以1號(hào)線段為例,數(shù)字中包含它的有2,3,4,5,6,8,9,字母中包含它的有a,b,d,e,f,h,k,n,o,p,q,s,t,w,x,y,z。

然后定義drawDight(s)函數(shù),根據(jù)字符s繪制七段數(shù)碼管。

根據(jù)不同的字符,調(diào)用drawLine()函數(shù)繪制對(duì)應(yīng)的線段。通過(guò)判斷字符s的值,決定繪制哪些線段。每繪制完一組線段,將畫(huà)筆左轉(zhuǎn)90度,準(zhǔn)備繪制下一組線段。

def drawDight(s): # 根據(jù)字符繪制七段數(shù)碼管
     # 繪制1號(hào)線段
    drawLine(True) if s in ['2','3','4','5','6','8','9','a','b','d','e','f','h','k','n','o','p','q','s','t','w','x','y','z'] else drawLine(False)
     # 繪制2號(hào)線段
    drawLine(True) if s in ['0','1','3','4','5','6','7','8','9','a','b','d','g','h','i','j','k','m','n','o','q','u','v','w','x','y'] else drawLine(False)
     # 繪制3號(hào)線段
    drawLine(True) if s in ['0','2','3','5','6','8','9','b','c','d','e','g','i','j','l','o','s','t','u','v','w','y','z'] else drawLine(False)
     # 繪制4號(hào)線段
    drawLine(True) if s in ['0','2','6','8','a','b','c','d','e','f','g','h','k','l','m','n','o','p','r','t','u','v','w','z'] else drawLine(False)

    t.left(90)

     # 繪制5號(hào)線段
    drawLine(True) if s in ['0','4','5','6','8','9','a','b','c','e','f','g','h','k','l','m','p','q','r','t','u','w','x','y'] else drawLine(False)
     # 繪制6號(hào)線段
    drawLine(True) if s in ['0','2','3','5','6','7','8','9','a','c','e','f','g','i','k','m','p','q','r','s'] else drawLine(False)
     # 繪制7號(hào)線段
    drawLine(True) if s in ['0','1','2','3','4','7','8','9','a','d','h','i','j','m','p','q','u','w','y','z'] else drawLine(False)

    t.right(180)
    t.penup()
    t.fd(30)

定義drawStr(Str)函數(shù),用于依次繪制輸入的字符串中的每個(gè)字符,通過(guò)遍歷字符串中的每個(gè)字符,調(diào)用drawDight()函數(shù)進(jìn)行繪制。

def drawStr(Str):
    for x in Str:
        drawDight(x)   

定義main()函數(shù),用于設(shè)置全局參數(shù)和執(zhí)行繪制操作。

在函數(shù)中,首先通過(guò)input()函數(shù)獲取用戶輸入的一段字符,并將其賦值給變量a。

然后設(shè)置畫(huà)筆顏色為紅色,設(shè)置窗口大小為1280x720,隱藏畫(huà)筆,設(shè)置繪圖速度為0,即最快速度,將畫(huà)筆抬起并向后移動(dòng)400個(gè)單位(設(shè)置繪圖起點(diǎn)),設(shè)置畫(huà)筆大小為5。

接著調(diào)用drawStr(a)函數(shù)來(lái)繪制用戶輸入的字符。

最后調(diào)用t.done()表示繪制完成。

def main(): # 全局設(shè)置
     a=input('請(qǐng)輸入一段字符:')
     t.pencolor('red') # 設(shè)置畫(huà)筆的顏色
     t.setup(1280,720) # 設(shè)置窗口的大小
     t.hideturtle() # 隱藏畫(huà)筆         
     t.speed(0) # 設(shè)置畫(huà)圖速度       
     t.penup() 
     t.fd(-400) # 設(shè)置繪圖起點(diǎn)         
     t.pensize(5) # 設(shè)置畫(huà)筆大小
     drawStr(a)
     t.done()      

最后調(diào)用main()函數(shù)來(lái)執(zhí)行整個(gè)繪制過(guò)程。

main()

三、源代碼

import turtle as t
def drawGap(): # 繪制間隙
    t.penup()
    t.fd(5) # 設(shè)置間隙大小
def drawLine(draw): # 繪制數(shù)碼管中的一段線
     drawGap()
     t.pendown() if draw else t.penup()
     t.fd(40)
     drawGap()
     t.right(90)
def drawDight(s): # 根據(jù)字符繪制七段數(shù)碼管
     # 繪制1號(hào)線段
    drawLine(True) if s in ['2','3','4','5','6','8','9','a','b','d','e','f','h','k','n','o','p','q','s','t','w','x','y','z'] else drawLine(False)
     # 繪制2號(hào)線段
    drawLine(True) if s in ['0','1','3','4','5','6','7','8','9','a','b','d','g','h','i','j','k','m','n','o','q','u','v','w','x','y'] else drawLine(False)
     # 繪制3號(hào)線段
    drawLine(True) if s in ['0','2','3','5','6','8','9','b','c','d','e','g','i','j','l','o','s','t','u','v','w','y','z'] else drawLine(False)
     # 繪制4號(hào)線段
    drawLine(True) if s in ['0','2','6','8','a','b','c','d','e','f','g','h','k','l','m','n','o','p','r','t','u','v','w','z'] else drawLine(False)

    t.left(90)

     # 繪制5號(hào)線段
    drawLine(True) if s in ['0','4','5','6','8','9','a','b','c','e','f','g','h','k','l','m','p','q','r','t','u','w','x','y'] else drawLine(False)
     # 繪制6號(hào)線段
    drawLine(True) if s in ['0','2','3','5','6','7','8','9','a','c','e','f','g','i','k','m','p','q','r','s'] else drawLine(False)
     # 繪制7號(hào)線段
    drawLine(True) if s in ['0','1','2','3','4','7','8','9','a','d','h','i','j','m','p','q','u','w','y','z'] else drawLine(False)

    t.right(180)
    t.penup()
    t.fd(30)
def drawStr(Str):
    for x in Str:
        drawDight(x)          
def main(): # 全局設(shè)置
     a=input('請(qǐng)輸入一段字符:')
     t.pencolor('red') # 設(shè)置畫(huà)筆的顏色
     t.setup(1280,720) # 設(shè)置窗口的大小
     t.hideturtle() # 隱藏畫(huà)筆         
     t.speed(0) # 設(shè)置畫(huà)圖速度       
     t.penup() 
     t.fd(-400) # 設(shè)置繪圖起點(diǎn)         
     t.pensize(5) # 設(shè)置畫(huà)筆大小
     drawStr(a)
     t.done()      
main()

附:14位數(shù)碼管,畫(huà)英文,和數(shù)字

import datetime
import turtle

name = []

def drawLine(draw):  # 繪制單段數(shù)碼管
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    turtle.right(90)

def drawLine1(draw):  # 繪制單段數(shù)碼管1
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(20)

def drawtdown1(draw):  # 斜線
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(44.7)

def drawDigit(digit):  # 根據(jù)數(shù)字繪制七段數(shù)碼管
    # 橫1筆
    drawLine1(True) if digit in [2, 4, 5, 6, 8, 9, 'A', 'E', 'F', 'H',  'K', 'P', 'R', 'S'] else drawLine1(False)
   
    # 橫2筆
    drawLine1(True) if digit in [2, 3, 4, 5, 6, 8, 9,'F', 'A','B','G','H','P,'R',S'] else drawLine1(False)
   
    # 第3筆
    turtle.right(90)
    drawLine(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'D', 'G', 'H', 'J', 'M', 'N' , 'O', 'Q', 'S', 'U', 'W'] else drawLine(False)
   
    # 第4筆
    drawLine(True) if digit in ['L',0, 2, 3, 5, 6, 8, 9, 'B', 'C', 'D', 'E', 'G', 'I', 'U','J', 'O', 'Q', 'S', 'Z'] else drawLine(False)
    
    # 第5筆
    drawLine(True) if digit in ['L',0, 2, 6, 8, 'A', 'C' , 'E' , 'F' , 'G', 'H' , 'J' , 'K' , 'L' , 'M' , 'N' ,'O' , 'P' , 'Q' ,'R' , 'U' , 'V' , 'W'] else drawLine(False)
   
    # 第6筆(因?yàn)闀?huì)右轉(zhuǎn),這里調(diào)節(jié)第五筆為向上直線)
    turtle.left(90)
    drawLine(True) if digit in ['L',0, 4, 5, 6, 8, 9, 'A','C','E','F','G','H','K','M','N','O','P','Q','R','S','U','V','W'] else drawLine(False)
  
    # 第7筆
    drawLine(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9, 'A','B','C','D','E','F','G','O','P','Q','R','I','S','T','Z'] else drawLine(False)
   
    # 第8筆
    drawLine(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9, 'A','B','D','H','J','M','N','O','P','Q','R','U','W'] else drawLine(False)
  
    # 第9筆
    turtle.left(90)
    turtle.penup()
    turtle.fd(40)
    turtle.right(90 + 63.4)
    drawtdown1(True) if digit in ['K','N','Q','K','N','Q','R','W','X'] else drawtdown1(False)
  
    # 第10筆********************
    drawtdown1(True) if digit in ['M','N','X','Y'] else drawtdown1(False)
  
    # 第11筆********************
    turtle.right(90 + 26.6)
    turtle.penup()
    turtle.fd(20)
    turtle.right(90)
    drawLine(True) if digit in ['B','D','I','T'] else drawLine(False)
   
    # 第12筆***********
    turtle.left(90)
    drawLine(True) if digit in ['B','D','I','T','Y'] else drawLine(False)
  
    # 第13筆
    turtle.penup()
    turtle.fd(20)
    turtle.right(90 + 26.6)
    drawtdown1(True) if digit in ['V','X','Z','W', 0] else drawtdown1(False)

    # 第14筆
    drawtdown1(True) if digit in ['M','V','X','Y','Z','K', 0, 1] else drawtdown1(False)
    turtle.right(90 + 63.4)
    turtle.penup()
    turtle.fd(40)
    turtle.left(90)
    turtle.fd(20)

def drawDate(date):
    turtle.pencolor("black")
    for i in date:
        if i == '-':
            turtle.write('年', font=("Arial", 25, "normal"))
            turtle.pencolor("black")
            turtle.fd(40)
        elif i == '=':
            turtle.write('月', font=("Arial", 25, "normal"))
            turtle.pencolor("black")
            turtle.fd(40)
        elif i == '+':
            turtle.write('日', font=("Arial", 25, "normal"))
        else:
            drawDigit(eval(i))

def drawname():
    #name = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
    name = ['L', 'O', 'N', 'G',' ', 'T', 'A', 'O']
    #name = [ 'I','  ','L','O','V','E', ' ',  'Y','O','U']
    for i in name:
        drawDigit(i)

def main():
    turtle.setup(800, 350, 200, 200)
    turtle.penup()
    turtle.goto(-300, 50)
    turtle.pensize(5)
    turtle.pencolor("black")
    turtle.speed(0)#這個(gè)讓烏龜跑快點(diǎn),慢慢爬真的難受,想慢點(diǎn)的同志把這個(gè)注釋就行
    drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))
    turtle.penup()
    turtle.goto(-200, -100)
    turtle.pencolor('red')
    drawname()
    turtle.hideturtle()
    turtle.exitonclick()#畫(huà)完不關(guān)閉畫(huà)布,點(diǎn)擊關(guān)閉

main()

總結(jié) 

到此這篇關(guān)于Python turtle繪圖教程之七段數(shù)碼管顯示數(shù)字和字母的文章就介紹到這了,更多相關(guān)Python七段數(shù)碼管顯示數(shù)字和字母內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python先序遍歷二叉樹(shù)問(wèn)題

    python先序遍歷二叉樹(shù)問(wèn)題

    這篇文章主要介紹了python先序遍歷二叉樹(shù)問(wèn)題,簡(jiǎn)單分析了問(wèn)題,然后向大家分享了代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Python?十大經(jīng)典排序算法實(shí)現(xiàn)詳解

    Python?十大經(jīng)典排序算法實(shí)現(xiàn)詳解

    排序算法是《數(shù)據(jù)結(jié)構(gòu)與算法》中最基本的算法之一。排序算法可以分為內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的排序記錄,在排序過(guò)程中需要訪問(wèn)外存
    2022-01-01
  • Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊

    Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊

    這篇文章主要介紹了Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊,首先創(chuàng)建一個(gè)以christmastree的命名的模塊并定義一個(gè)全局變量創(chuàng)建一個(gè)名稱為fun_christmastree()的函數(shù)展開(kāi)詳情,感興趣的朋友可以參考一下
    2022-06-06
  • Python實(shí)現(xiàn)的生產(chǎn)者、消費(fèi)者問(wèn)題完整實(shí)例

    Python實(shí)現(xiàn)的生產(chǎn)者、消費(fèi)者問(wèn)題完整實(shí)例

    這篇文章主要介紹了Python實(shí)現(xiàn)的生產(chǎn)者、消費(fèi)者問(wèn)題,簡(jiǎn)單描述了生產(chǎn)者、消費(fèi)者問(wèn)題的概念、原理,并結(jié)合完整實(shí)例形式分析了Python實(shí)現(xiàn)生產(chǎn)者、消費(fèi)者問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • Matplotlib的反轉(zhuǎn)軸、繪制雙軸和定制刻度詳解

    Matplotlib的反轉(zhuǎn)軸、繪制雙軸和定制刻度詳解

    這篇文章主要介紹了Matplotlib的反轉(zhuǎn)軸、繪制雙軸和定制刻度詳解,作為Python生態(tài)中應(yīng)用最廣泛的繪圖庫(kù),Matplotlib用起來(lái)非常簡(jiǎn)單,也很容易上手,本文匯總了和軸、刻度相關(guān)的七個(gè)Matplotlib使用技巧,并給出了實(shí)例代碼,需要的朋友可以參考下
    2023-08-08
  • 使用pandas兩列轉(zhuǎn)換成字典的健和值

    使用pandas兩列轉(zhuǎn)換成字典的健和值

    這篇文章主要介紹了使用pandas兩列轉(zhuǎn)換成字典的健和值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python arcpy練習(xí)之面要素重疊拓?fù)錂z查

    python arcpy練習(xí)之面要素重疊拓?fù)錂z查

    今天小編就為大家分享一篇Python ArcPy的面要素重疊拓?fù)錂z查,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09
  • Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值詳解

    Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值詳解

    在實(shí)際處理數(shù)據(jù)中,數(shù)據(jù)預(yù)處理操作中,常常需要去除掉重復(fù)的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python怎么使用xlwt操作excel你知道嗎

    python怎么使用xlwt操作excel你知道嗎

    這篇文章主要為大家介紹了python使用xlwt操作excel的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • 在python image 中安裝中文字體的實(shí)現(xiàn)方法

    在python image 中安裝中文字體的實(shí)現(xiàn)方法

    今天小編大家分享一篇在python image 中安裝中文字體的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08

最新評(píng)論