python实现七段数码管和倒计时效果


Posted in Python onNovember 23, 2019

8是典型的七段数码管的例子,因为刚好七段都有经过,这里我写的代码是从1开始右转。

python实现七段数码管和倒计时效果

这是看Mooc视频写的一个关于用七段数码管显示当前时间

# -*-coding:utf-8 -*-
import turtle as t
import time
def drawGap():
  t.penup()
  t.fd(5)
def drawLine(draw):
  drawGap()
  t.pendown() if draw else t.penup()
  t.fd(40)
  t.right(90)
def drawDigit(digit): 
  drawLine(True) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False) #当digit是2, 3, 4, 5, 6, 8, 9时执行
  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)
  t.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)
  t.left(180)
  t.penup()
  t.fd(20)
def drawDate(date):
  for i in date:
    if i=='-':
      t.write('年',font=("Arial",18,"normal"))
      t.pencolor("green")
      t.fd(40)
    elif i=='=':
      t.write('月', font=("Arial", 18, "normal"))
      t.pencolor("green")
      t.fd(40)
    elif i=='+':
      t.write('日', font=("Arial", 18, "normal"))
      t.pencolor("green")
      t.fd(40)
    else:
      drawDigit(eval(i))
  # drawDigit(eval(date))
if __name__ == '__main__':
  t.setup(800,350,200,200)
  t.penup()
  t.fd(-300)
  t.pensize(5)
  drawDate(time.strftime('%Y-%m=%d+',time.gmtime())) #strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间
  # drawDate('6')
  t.hideturtle()
  t.done()

除外倒计时用七段数码管显示

在下面的代码中的datetime库对我这个新手去计算时间差来说是很方便的,另外我还学会了简写条件语句

<表达示> if <条件> else <表达示>

# -*-coding:utf-8 -*-
import turtle as t
import time
import datetime

def draw_Line(draw):
  t.pendown() if draw else t.penup() #pendown 落下画笔 penup单纯飞过去没有落笔
  t.fd(40)
  t.right(90)

def draw_Digit(digit):
  t.write('剩余时间:', font=("Arial", 18, "normal"))
  t.pencolor("green")
  t.fd(160)
  i = 0
  while i < len(digit):
    if digit[i] >= '0' and digit[i] <= '9':
      draw_Line(True) if eval(digit[i]) in [2, 3, 4, 5, 6, 8, 9] else draw_Line(False)
      draw_Line(True) if eval(digit[i]) in [1, 3,4, 5, 6,7, 8, 9, 0] else draw_Line(False)
      draw_Line(True) if eval(digit[i]) in [2, 3, 5, 6, 8, 9, 0] else draw_Line(False)
      draw_Line(True) if eval(digit[i]) in [2, 6, 8, 0] else draw_Line(False)
      t.left(90)
      draw_Line(True) if eval(digit[i]) in [4, 5, 6, 8, 9, 0] else draw_Line(False)
      draw_Line(True) if eval(digit[i]) in [2, 3, 5, 6,7, 8, 9, 0] else draw_Line(False)
      draw_Line(True) if eval(digit[i]) in [1,2, 3, 4, 7, 8, 9, 0] else draw_Line(False)
      t.left(180)
      t.penup()
      t.fd(20)
    else:
      break
    i = i + 1


if __name__ == '__main__':
  t.setup(650,350,200,200)
  t.penup()
  t.fd(-300)
  t.pensize(4)
  remain = datetime.datetime(2019, 2, 4) - datetime.datetime.now()
  s=str(remain)
  draw_Digit(s)
  t.hideturtle()
  t.done()

python实现七段数码管和倒计时效果

看到很多优秀的人,他们的努力,成就,天赋和幸运,都是我所不能及的,但若心向往,每天再努力一点点,即使最后没有向他们那样,也会使我不那么平庸。加油!!!

以上这篇python实现七段数码管和倒计时效果就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
微信 用脚本查看是否被微信好友删除
Oct 28 Python
Django学习笔记之ORM基础教程
Mar 27 Python
Python列表解析配合if else的方法
Jun 23 Python
详解python持久化文件读写
Apr 06 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
Nov 16 Python
python 实现绘制整齐的表格
Nov 18 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
Python如何给你的程序做性能测试
Jul 29 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 #Python
使用Python画出小人发射爱心的代码
Nov 23 #Python
用python的turtle模块实现给女票画个小心心
Nov 23 #Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 #Python
Python使用Turtle库绘制一棵西兰花
Nov 23 #Python
用Python实现校园通知更新提醒功能
Nov 23 #Python
利用Python的turtle库绘制玫瑰教程
Nov 23 #Python
You might like
PHP中上传大体积文件时需要的设置
2006/10/09 PHP
php生成文件
2007/01/15 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
简单的php文件上传(实例)
2013/10/27 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
npm qs模块使用详解
2020/02/07 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
python封装对象实现时间效果
2020/04/23 Python
python使用正则表达式提取网页URL的方法
2015/05/26 Python
详解Python迭代和迭代器
2016/03/28 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
Pytorch之finetune使用详解
2020/01/18 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
公司周年庆典策划方案
2014/05/17 职场文书
个人自荐材料
2014/05/23 职场文书
努力工作保证书
2015/02/28 职场文书
军事博物馆观后感
2015/06/05 职场文书