当前位置: 首页 > news >正文

Python绘制数码管显示当前时间

利用Python中的turtle图形库绘制七段数码管,显示当前时间


代码


# coding:utf-8
# 绘制七段数码管,显示当前时间
import time
import turtle as tt

# 绘制间隔
def drawGap():
    tt.penup()
    tt.fd(5)

# 绘制单段数码管
def drawLine(draw):
    drawGap()

    if(draw):
        tt.pendown()
    else:
        tt.penup()

    tt.fd(50)
    drawGap()
    tt.right(90)

# 绘制当前时间
def drawDate(date):
    tt.pencolor("red")
    for i in date:
        if i == '+':
            tt.write("年", font = ("黑体", 25, "normal"))
            tt.pencolor("green")
            tt.fd(50)
        elif i == '-':
            tt.write("月", font=("黑体", 25, "normal"))
            tt.pencolor("blue")
            tt.fd(50)
        elif i == '*':
            tt.write("日", font=("黑体", 25, "normal"))
            tt.pencolor("purple")
            tt.fd(50)
        elif i == '=':
            tt.write("时", font=("黑体", 25, "normal"))
            tt.pencolor("yellow")
            tt.fd(50)
        elif i == '#':
            tt.write("分", font=("黑体", 25, "normal"))
            tt.pencolor("black")
            tt.fd(50)
        elif i == '$':
            tt.write("秒", font=("黑体", 25, "normal"))

        else:
            drawDigit(eval(i))

# 绘制数码管
def drawDigit(cur_time):
    if cur_time in [2, 3, 4, 5, 6, 8, 9]:
        drawLine(True)
    else:
        drawLine(False)

    if cur_time in [0, 1, 3, 4, 5, 6, 7, 8, 9]:
        drawLine(True)
    else:
        drawLine(False)

    if cur_time in [0, 2, 3, 5, 6, 8, 9]:
        drawLine(True)
    else:
        drawLine(False)

    if cur_time in [0, 2, 6, 8]:
        drawLine(True)
    else:
        drawLine(False)

    tt.left(90)

    if cur_time in [0, 4, 5, 6, 8, 9]:
        drawLine(True)
    else:
        drawLine(False)

    if cur_time in [0, 2, 3, 5, 6, 7, 8, 9]:
        drawLine(True)
    else:
        drawLine(False)

    if cur_time in [0, 1, 2, 3, 4, 7, 8, 9]:
        drawLine(True)
    else:
        drawLine(False)

    tt.left(180)
    tt.penup()
    tt.fd(20)

# 主函数
def main():
    tt.setup(1600, 300, 200, 200)
    tt.penup()
    tt.fd(-730)
    tt.pensize(5)
    drawDate(time.strftime('%Y+%m-%d*%H=%M#%S$', time.localtime()))
    tt.hideturtle()
    tt.done()

if __name__ == "__main__":
    main()

结果


Python绘制数码管显示当前时间


总结

通过在mooc网学习相关知识,借鉴相关代码,最终实现本次设计。

转载于:https://blog.51cto.com/13473568/2122400

相关文章:

  • ECSHOP 购物车数量更新时自动更新价格 不要重新点击更新数量按钮
  • 关于ansible远程执行的环境变量问题(login shell nonlogin shelll)
  • Effective C++ 学习笔记[1]
  • Spring Boot 2.0 with Spring 5 Kotlin support and Spring WebFlux functional
  • mysql表分区案例
  • C# :WinForm TextBox猜想输入和历史记录输入
  • 并发服务器:Redis案例研究分析
  • POJ 3041 Asteroids (最小点覆盖集)
  • 不通过调用__Init__来创建实例
  • 算法学习--动手
  • 10-padding(内边距)
  • linux中grep和egrep的用法
  • hashlib模块学习:hmac
  • 开发基于以太坊智能合约的DApp
  • vue-cli脚手架一些插件安装elementui和axios
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【刷算法】求1+2+3+...+n
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Druid 在有赞的实践
  • es的写入过程
  • exif信息对照
  • Javascript Math对象和Date对象常用方法详解
  • java概述
  • Js基础知识(四) - js运行原理与机制
  • Laravel 中的一个后期静态绑定
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • OSS Web直传 (文件图片)
  • scrapy学习之路4(itemloder的使用)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 从0到1:PostCSS 插件开发最佳实践
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 我与Jetbrains的这些年
  • - 转 Ext2.0 form使用实例
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • #1015 : KMP算法
  • $forceUpdate()函数
  • (day 12)JavaScript学习笔记(数组3)
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (SpringBoot)第七章:SpringBoot日志文件
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)JPA - JQPL 实现增删改查
  • (小白学Java)Java简介和基本配置
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)setTimeout 和 setInterval 的区别
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Core 中的路径问题