1. 程式人生 > 其它 >Python編寫時間顯示程式,要求時鐘程式每秒鐘重新整理一次

Python編寫時間顯示程式,要求時鐘程式每秒鐘重新整理一次

技術標籤:習題集python

數碼管顯示時間,動態重新整理

  • 執行截圖
    在這裡插入圖片描述
  • 原始碼
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函式

如果對您解決問題有所幫助,點個贊支援下小博叭