ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python编写时间显示程序,要求时钟程序每秒钟刷新一次

2021-01-17 11:03:40  阅读:362  来源: 互联网

标签:每秒钟 right penup Python 30 程序 drawLine length fd


数码管显示时间,动态刷新

  • 运行截图
    在这里插入图片描述
  • 源代码
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函数

如果对您解决问题有所帮助,点个赞支持下小博叭

标签:每秒钟,right,penup,Python,30,程序,drawLine,length,fd
来源: https://blog.csdn.net/m0_46673600/article/details/112731477

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有