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调用cmd命令行制作刷博器
Jan 13 Python
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
python内置数据类型之列表操作
Nov 12 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
浅谈Python单向链表的实现
2015/12/24 Python
python批量制作雷达图的实现方法
2016/07/26 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
日语专业个人的求职信
2013/12/03 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
统招统分证明
2015/06/23 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python