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

绘制模式:

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

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

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

示例一:

#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()

效果展示:

示例二:

#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绘制七段数码管实例代码

本文地址: http://www.cppcns.com/jiaoben/python/215261.html

python七段数码管设计图案-Python绘制七段数码管实例代码相关推荐

  1. python七段数码管设计图案-Python 七段数码管绘制

    数码管是一种半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point).它价格便宜.使用简单,通过对其不同 ...

  2. python七段数码管设计图案-python实现七段数码管和倒计时效果

    8是典型的七段数码管的例子,因为刚好七段都有经过,这里我写的代码是从1开始右转. 这是看Mooc视频写的一个关于用七段数码管显示当前时间 # -*-coding:utf-8 -*- import tu ...

  3. python绘制四边螺旋线代_Python绘制3d螺旋曲线图实例代码

    Line plots Axes3D.plot(xs, ys, *args, **kwargs) 绘制2D或3D数据 参数 描述 xs, ys X轴,Y轴坐标定点 zs Z值,每一个点的值都是1 zdi ...

  4. python功能性爬虫案例_Python使用requests及BeautifulSoup构建爬虫实例代码

    本文研究的主要是Python使用requests及BeautifulSoup构建一个网络爬虫,具体步骤如下. 功能说明 在Python下面可使用requests模块请求某个url获取响应的html文件 ...

  5. python随机数程序源码_Python 实现随机数详解及实例代码

    Python3实现随机数 random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Pyth ...

  6. python按日期排序_python按修改时间顺序排列文件的实例代码

    python按修改时间顺序排列文件,具体代码如下所示: import os def sort_file_by_time(file_path): files = os.listdir(file_path ...

  7. python读取灰度图_Python读取MRI并显示为灰度图像实例代码

    Python读取MRI并显示为灰度图像实例代码 本文实例主要关于Python实现读取MRI(核磁共振成像)为numpy数组,使用imshow显示为灰度. 代码如下: import matplotlib ...

  8. python处理pdf 层_Python处理PDF及生成多层PDF实例代码

    Python提供了众多的PDF支持库,本文是在Python3环境下,试用了两个库来完成PDF的生成的功能.PyPDF对于读取PDF支持较好,但是没找到生成多层PDF的方法.Reportlab看起来更成 ...

  9. python处理mat数据_python读取.mat文件的数据及实例代码

    首先导入scipy的包 from scipy.io import loadmat 然后读取 m = loadmat("F:/__identity/activity/论文/data/D001. ...

最新文章

  1. python 往excel 里面写数据
  2. Blender创建三维教室场景学习教程 3D Classroom Environment Creation in Blender
  3. 那个放弃谷歌回老家二本教书的清华姚班生,现在怎么样了?
  4. 8K投影仪+大银幕,日本系统Sphere5.2不用头显也能体验VR
  5. 主机关机后第二天就无法开机_手机关机后“开机”,跟直接“重启”有区别吗?看完又涨知识了...
  6. Bugku—web(一)
  7. emc文件存储服务器,emc存储怎么挂在linux服务器上
  8. 1143 Lowest Common Ancestor 甲级
  9. 一个HTTP请求,把网站打裂开了!
  10. 五种开源协议的比较(BSD_Apache_GPL_LGPL_MIT)
  11. 用JAVA FX制作3D魔方游戏
  12. Redis主从自动failover
  13. mysql datetime 对于hbm_mysql 字段datetime Hibernate
  14. MVC 之Action
  15. autofs后 卸载_autofs自动挂载
  16. 含泪推荐5款极为实用的软件
  17. 不用花钱,不用公网ip,用zerotier直接外网高速访问群晖,理论黑群晖白群晖都可以
  18. openstack instance resize
  19. python findwindow函数_PYTHON:Win32函数大全
  20. ATM和电路交换和分组交换区别

热门文章

  1. suse的安装命令zypper,类似apt
  2. python berkeley 操作——尤其提示 需版本匹配
  3. uwsgi gevent
  4. mac 安装 nodeJsnpm 配置
  5. MySQL 服务端调优
  6. jQuery URL Decoder Plugin
  7. ASP.NET之间数据的传递(未完)
  8. [导入]TreeView的级联选择(上)
  9. Matlab 整数线性规划问题模型代码
  10. linux usb驱动