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 lxml模块安装教程
Jun 02 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
Python中类的初始化特殊方法
Dec 01 Python
Flask框架各种常见装饰器示例
Jul 17 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
简单了解python列表和元组的区别
May 14 Python
学会python自动收发邮件 代替你问候女友
May 20 Python
Python可以实现栈的结构吗
May 27 Python
使用K.function()调试keras操作
Jun 17 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
利用python做数据拟合详情
Nov 17 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使用百度天气接口示例
2014/04/22 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
python 域名分析工具实现代码
2009/07/15 Python
Python 正则表达式的高级用法
2016/12/04 Python
Python 数据结构之旋转链表
2017/02/25 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python os.path模块常用方法实例详解
2018/09/16 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
父母寄语大全
2014/04/12 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
上课说话检讨书
2015/01/27 职场文书