程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python繪制一個時間的七段數碼管實例基本的七段數碼管繪制

編輯:Python
​ 基本的七段數碼管繪制繪制一個時間的七段數碼管基本思路步驟一:繪制單個數字對應的數碼管 步驟二:獲得一串數字,繪制對應的數碼管 步驟三:獲得當前系統時間,繪制對應的數碼管數碼管的基本構造七段數碼管由七個基本線條組成,可以有固定順序,不同的數字顯示不同的線條。

編輯七段數碼管的基本構造繪制單條線繪制七段數碼管的最基礎的一步是繪制一條線,代碼如下:

編輯繪制一條線獲得一串數字,繪制對應數碼管

編輯獲得當前系統時間,調整顯示格式,繪制相應數碼管
結果顯示案例的方法思維①模塊化思維:確定模塊接口,封裝功能②規則化思維:抽象過程為規則,計算機自動執行③化繁為簡:將大功能變為小功能組合,分而治之import turtle, datetime
def drawLine(draw): #繪制單段數碼管
 turtle.pendown() if draw else turtle.penup()
 turtle.fd(40)
 turtle.right(90)
def drawDigit(digit): #根據數字繪制七段數碼管
 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): #獲得要輸出的數字
 for i in date:
 drawDigit(eval(i)) #注意: 通過eval()函數將數字變為整數
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() 






舉一反三,我們可以寫個帶有時間倒計時的程序
import turtle

def drawGap():
 turtle.penup()
 turtle.forward(10)

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

def drawDigit(digit): # 根據數字繪制七段數碼管
 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.forward(20) # 未確定後續數字確定位置

def drawDate(date): # 獲得要輸出的數字
 turtle.pencolor("red")
 for i in reversed(range(date)):
 nums = str(i)
 for num in nums:
 drawDigit(eval(num)) # 通過eval將字符串編程整數
 turtle.clear()
 width = len(nums)
 turtle.forward(-80 * width)
 # 畫一段長度是40,左右各空10,畫完之後前進20,做好准備畫下一個數字,回退應退,80


def main():
 turtle.setup(600, 300, 200, 200)
 turtle.penup()
 turtle.forward(-100)
 turtle.pensize(15)
 turtle.speed("fast")
 drawDate(12)
 turtle.done()
 turtle.hideturtle()

main()




  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved