python七段数码管的详解,Python入门基础:七段数码管绘制
1.在学习Python的过程中,运用所学的一些基础知识,进行一些简单的编程,可以收获很多乐趣。在生活中,LED灯无处不在,荧幕显示的广告词,给我们呈现出动态的视觉效果。下面,则以最简单的显示日期为例,绘制七段数码管。
2.何为七段数码管
数码管是一种价格便宜、使用简单的电子器件,广泛应用于价格较低的电子类产品中,其中,七段数码管最为常用。七段数码管(Seven-segment Indicator)由七段数码管拼接而成,每段有亮或不亮的两种情况,且包括一个小数点的位置。
3.在绘制数码管的显示动态时,可以自定义顺序,如图1.
图1 七段数码管的绘制顺序
4.源代码,包含部分注释
import turtle,datetime#引用
def drawGap():#绘制数码管间隔
turtle.penup()
turtle.fd(5)
def drawLine(draw):#绘制单段数码管
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(d):#根据数字绘制七段数码管,True或False决定是否抬起画笔
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,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+1'))#日期的读取方式,便于控制输出的顺序(年,月,日)
turtle.hideturtle()
raw_input('please press enter to close this window.')#解决闪退问题
main()
5.运行结果
标签:turtle,False,drawLine,Python,else,数码管,七段
来源: https://www.cnblogs.com/chenting123456789/p/11516986.html
python七段数码管的详解,Python入门基础:七段数码管绘制相关推荐
- python利器的使用-图文详解python开发利器之ulipad的使用实践
Ulipad是一个国人limodou编写的专业Python编辑器,它基于wxpython开发的GUI(图形化界面).下面这篇文章主要介绍了python开发利器之ulipad的使用实践,文中介绍的非常详 ...
- python停止线程池_详解python中Threadpool线程池任务终止示例代码
需求 加入我们需要处理一串个位数(0~9),奇数时需要循环打印它:偶数则等待对应时长并完成所有任务:0则是错误,但不需要终止任务,可以自定义一些处理. 关键点 定义func函数处理需求 callbac ...
- python模块搜索原则_详解python模块路径查找规则及定义
在python中创建一个模块非常简单,只需要在当前目录下创建一个 .py文件即可,系统自动将其解析成模块,文件名就是模块名.很多我们源码时代的同学都认为在查找模块时优先使用当前目录下的自定义模块.其实 ...
- python中index函数_详解python中的index函数用法
1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...
- python变量定义大全_详解python变量与数据类型
这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...
- python提取hbase数据_详解python操作hbase数据的方法介绍
配置 thrift python使用的包 thrift 个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到project interpreter ...
- python多线程操作列表_详解Python多线程下的list
list 是 Python 常用的几个基本数据类型之一.正常情况下我们会对 list 有增删改查的操作,显然易见不会有任何问题.那么如果我们试着在多线程下操作list 会有问题吗? 多线程下的 lis ...
- Python str / bytes / unicode 区别详解 - Python零基础入门教程
目录 一.前言 二.Python str / bytes / unicode 区别 1.Python2.x 版本中 str / bytes / unicode 区别 2.Python3.x 版本中 s ...
- python装饰器由浅入深_详解Python装饰器由浅入深
装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码.装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们 ...
- python repair修复功能_详解Python修复遥感影像条带的两种方式
GDAL修复Landsat ETM+影像条带 Landsat7 ETM+卫星影像由于卫星传感器故障,导致此后获取的影像出现了条带.如下图所示, 影像中均匀的布满条带. 使用GDAL修复影像条带的代码如 ...
最新文章
- bert as service
- LeetCode简单题之有序数组中出现次数超过25%的元素
- 第一百零二节,JavaScript函数
- Go语言TCP Socket编程
- 深度剖析目标检测算法YOLOV4
- Linux基础知识--进程管理与计划任务
- extJs相关名字解释
- xss绕过字符过滤_XSS绕过实战练习
- 遇见JMS[1] —— activeMQ的简单使用
- Nginx笔记总结十一:Nginx重写规则指南
- 软考架构设计师脑图总结
- 美赛常用算法及代码——(1)DEA数据包络分析法
- 悬停提示工具:Tippy.js
- 秀米html编辑器,ueditor集成秀米编辑器
- 源码解析 深入vue响应式原理
- P4839 P哥的桶C++题解
- 如何参加java开源项目_有哪些适合大学生的开源项目?怎么参与?
- 最珍贵的角落-赞美之泉(音乐河2)
- 深度学习基础笔记——前向传播与反向传播
- 好!好!好! 好文章!
热门文章
- c# .Net 缓存 使用System.Runtime.Caching 做缓存 平滑过期,绝对过期
- Spring Cloud Config服务端配置细节(一)
- 第38天:运算符、字符串对象常用方法
- css 属性选择器笔记
- day1作业二:多级菜单操作
- 敏捷现状10周年调查
- XEN--转载自鸟哥的linux私房菜
- 由浅入深CIL系列:5.抛砖引玉:判断string是否为空的四种方法的CIL代码看看效率如何?...
- 在AIX上编译Samba
- 数据科学与大数据技术的案例_主数据科学案例研究,招聘经理的观点