Python編寫時間顯示程式,要求時鐘程式每秒鐘重新整理一次
阿新 • • 發佈:2021-01-19
數碼管顯示時間,動態重新整理
- 執行截圖
- 原始碼
from turtle import * #匯入turtle包 from datetime import datetime import time def drawLine(draw, length): # 繪製單段數碼管 if (draw): #if函式,繪製六邊形路徑 pendown() begin_fill() #開始填充 left(45) fd(int(length / 10.0 * (2 ** 0.5))) #前進步數,int()把數值轉化成整數 right(45) fd(int(length * 8 / 10.0)) right(45) fd(int(length / 10.0 * (2 ** 0.5))) right(90) fd(int(length / 10.0 * (2 ** 0.5))) right(45) fd(int(length * 8 / 10.0)) right(45) fd(int(length / 10.0 * (2 ** 0.5))) right(135) end_fill() #結束填充 penup() fd(length) right(90) def drawDigit(digit, length): # 根據數字繪製七段數碼管,宣告函式drawDigit帶有兩個引數 drawLine(True, length) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False, length) #如果引數digit在列表中,呼叫drawLine函式引數draw為True,並把引數length傳給drawLine函式 drawLine(True, length) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False, length) drawLine(True, length) if digit in [0, 2, 3, 5, 6, 8, 9] else drawLine(False, length) drawLine(True, length) if digit in [0, 2, 6, 8] else drawLine(False, length) left(90) drawLine(True, length) if digit in [0, 4, 5, 6, 8, 9] else drawLine(False, length) drawLine(True, length) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False, length) drawLine(True, length) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False, length) left(180) penup() fd(20) def drawDay(day): #獲取要輸出的數字 for i in day: if i == '-': #write('年', font=('Arial', 18, 'normal')) fd(30) pendown() pencolor('blue') fd(20) penup() fd(30) pendown() pencolor('#dc6016') elif i == '=': #write('月', font=('Arial', 18, 'normal')) fd(30) pendown() pencolor('blue') fd(20) penup() fd(30) pendown() pencolor('#fba819') elif i == '+': #write('日', font=('Arial', 18, 'normal')) pencolor('#fbc819') fd(60) elif i == '*': #write('時', font=('Arial', 18, 'normal')) pencolor('blue') fd(30) right(90) penup() fd(10) pendown() fd(20) penup() left(180) fd(40) pendown() fd(20) right(180) fd(30) penup() left(90) pencolor('#e56526') fd(30) elif i == '#': #write('分', font=('Arial', 18, 'normal')) pencolor('blue') fd(30) right(90) penup() fd(10) pendown() fd(20) penup() left(180) fd(40) pendown() fd(20) right(180) fd(30) penup() left(90) fd(30) pencolor('purple') elif i == '?': write(' ') fd(60) else: drawDigit(eval(i),30) def main(): #main主函式 setup(1500,350,200,200) fd(-600) pensize(5) hideturtle() # 隱藏海龜 while True: tracer(False) #加快作圖,一次性畫好 penup() goto(-600, 0) color('red', 'yellow') drawDay(datetime.now().strftime('%Y-%m=%d+%H*%M#%S?')) #呼叫drawData函式,獲得要輸出的數字串 time.sleep(1) clear() #清屏 done() main() #執行main函式
如果對您解決問題有所幫助,點個贊支援下小博叭