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的Template使用指南
Sep 11 Python
python去掉行尾的换行符方法
Jan 04 Python
关于numpy中np.nonzero()函数用法的详解
Feb 07 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
python 剪切移动文件的实现代码
Aug 02 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
我就是这样学习Python中的列表
Jun 02 Python
softmax及python实现过程解析
Sep 30 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 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
关于手调机和数调机的选择
2021/03/02 无线电
使用php+xslt在windows平台上
2006/10/09 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
Python 和 JS 有哪些相同之处
2017/11/23 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
python定时关机小脚本
2018/06/20 Python
Python 面试中 8 个必考问题
2018/11/16 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python各种excel写入方式的速度对比
2020/11/10 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
中文系学生自荐信范文
2013/11/13 职场文书
英语专业推荐信
2013/11/16 职场文书
月考总结与反思
2015/10/22 职场文书
2016年清明节寄语
2015/12/04 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android