Python绘制七段数码管实例代码


Posted in Python onDecember 20, 2017

七段数码管(seven-segmentindicator)由7段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置

绘制模式:

input:输入当前日期的数字形式

process:根据每个数字绘制七段数码管表示

output:绘制当前日期的七段数码管表示

Python绘制七段数码管实例代码

示例一:

#DrawSevenSegDisplay.py 
import turtle, datetime 
def drawLine(draw):  #绘制单段数码管 
  turtle.pendown() if draw else turtle.penup() 
  turtle.fd(40) 
  turtle.right(90) 
def drawDigit(digit): #根据数字绘制七段数码管 
  drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) 
  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) 
  turtle.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) 
  turtle.left(180) 
  turtle.penup() 
  turtle.fd(20) 
def drawDate(date): #获得要输出的数字 
  for i in date: 
    drawDigit(eval(i)) #注意: 通过eval()函数将数字变为整数 
def main(): 
  turtle.setup(800, 350, 200, 200) 
  turtle.penup() 
  turtle.fd(-300) 
  turtle.pensize(5) 
  drawDate(datetime.datetime.now().strftime('%Y%m%d')) 
turtle.hideturtle()
main()

效果展示:

Python绘制七段数码管实例代码

示例二:

#DrawSevenSegDisplay.py 
import turtle, datetime 
def drawGap(): #绘制数码管间隔 
  turtle.penup() 
  turtle.fd(5) 
def drawLine(draw):  #绘制单段数码管 
  drawGap() 
  turtle.pendown() if draw else turtle.penup() 
  turtle.fd(40) 
  drawGap() 
  turtle.right(90) 
def drawDigit(d): #根据数字绘制七段数码管 
  drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) 
  drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) 
  drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) 
  drawLine(True) if d in [0,2,6,8] else drawLine(False) 
  turtle.left(90) 
  drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) 
  drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) 
  drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) 
  turtle.left(180) 
  turtle.penup() 
  turtle.fd(20) 
def drawDate(date): 
  turtle.pencolor("red") 
  for i in date: 
    if i == '-': 
      turtle.write('年',font=("Arial", 18, "normal")) 
      turtle.pencolor("green") 
      turtle.fd(40) 
    elif i == '=': 
      turtle.write('月',font=("Arial", 18, "normal")) 
      turtle.pencolor("blue") 
      turtle.fd(40) 
    elif i == '+': 
      turtle.write('日',font=("Arial", 18, "normal")) 
    else: 
      drawDigit(eval(i)) 
def main(): 
  turtle.setup(800, 350, 200, 200) 
  turtle.penup() 
  turtle.fd(-350) 
  turtle.pensize(5) 
  drawDate(datetime.datetime.now().strftime('%Y-%m=%d+')) 
  turtle.hideturtle() 
main()

效果展示:

Python绘制七段数码管实例代码

总结

以上就是本文关于Python绘制七段数码管实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python实现视频下载功能
Mar 14 Python
Python中格式化format()方法详解
Apr 01 Python
使用Python写一个小游戏
Apr 02 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
使用Scrapy爬取动态数据
Oct 21 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
python实现的分层随机抽样案例
Feb 25 Python
Django模型中字段属性choice使用说明
Mar 30 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 Python
python 算法题——快乐数的多种解法
May 27 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 Python
python代码实现ID3决策树算法
Dec 20 #Python
python决策树之CART分类回归树详解
Dec 20 #Python
python中文乱码不着急,先看懂字节和字符
Dec 20 #Python
python决策树之C4.5算法详解
Dec 20 #Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 #Python
python实现ID3决策树算法
Dec 20 #Python
理解python中生成器用法
Dec 20 #Python
You might like
php discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
php xml常用函数的集合(比较详细)
2013/06/06 PHP
php使用正则验证中文
2016/04/06 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现SMTP发送邮件详细教程
2021/03/02 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Django xadmin安装及使用详解
2020/10/26 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
QA工程师岗位职责
2013/11/20 职场文书
工业设计专业个人求职信范文
2013/12/28 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android