Python——七段数码管绘制
基本概念
七段数码管:七段数码管( seven-segment indicator)由 7 段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置。
源代码
版本一
# DrawSevenDisplay.py
import turtle
import datetimedef 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(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):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()turtle.done()
main()
版本二
/********************************手动输入日期显示********************************/import turtledef drawline(draw): #绘制单段数码管 turtle.pendown()if draw else turtle.penup() #如果draw是真值就让海龟画笔落下 否则抬起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))def main():turtle.setup(1200,550,200,200)turtle.penup()turtle.fd(-500)turtle.pensize(5)drawdate('2018')turtle.penup()turtle.fd(90)drawdate('04')turtle.penup()turtle.fd(90)drawdate('20')turtle.hideturtle()turtle.done()main()
版本三
/********************************用time函数获取当前时间,显示实时时间********************************/import turtle,timedef drawline(draw): #绘制单段数码管 turtle.pendown()if draw else turtle.penup() #如果draw是真值就让海龟画笔落下 否则抬起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):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(1200,550,200,200)turtle.penup()turtle.fd(-500)turtle.pensize(5)drawdate(time.strftime('%Y-%m=%d+',time.gmtime()))turtle.hideturtle()turtle.done()main()
版本四
#绘制七段数码管
import turtle
import time
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(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): #date为日期,数据格式为%Y-%m=%d+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(-300)turtle.pensize(5)drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))turtle.hideturtle()turtle.done()
main()
参考文章
https://blog.csdn.net/weixin_41815104/article/details/80024716
https://blog.csdn.net/yubing525/article/details/81148523
Python——七段数码管绘制相关推荐
- python七段数码管绘制英文字母_Python实例之七段数码管绘制理解
Python 实例之七段数码管绘制理解 八段线的编号如上图所示.基本逻辑为画笔从 1 走到 7 ,每一步画笔落下代表画或者是 画笔抬起代表不画,最终形成 1-9 的数字排列.以下理解均为个人学习理解. ...
- python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制
七段数码管绘制: 七段数码管是由7段数码管拼接而成,每段有亮或不亮两种情况,改进的七段数码管还包括一个小数点位置. 七段数码管能形成2^7=128种状态,其中部分状态能够显示易于人们理解的数字或字母含 ...
- python七段数码管绘制单个数字_#Python语言程序设计Demo - 七段数码管绘制
#七段数码管绘制 importturtle as timporttime as Tdef drawGap(): #绘制数码管的间隔 t.penup() t.fd(5)def drawLine(draw ...
- python七段数码管设计图案-Python 七段数码管绘制
数码管是一种半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point).它价格便宜.使用简单,通过对其不同 ...
- python七段数码管绘制秒表_Python绘制七段数码管实例代码
七段数码管(seven-segmentindicator)由7段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置 绘制模式: input:输入当前日期的数字形式 proc ...
- python七段数码管绘制实验报告_Python绘制七段数码管实例代码
七段数码管(seven-segmentindicator)由7段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置 绘制模式: input:输入当前日期的数字形式 proc ...
- python七段数码管绘制英文字母_Python入门基础:七段数码管绘制
1.在学习Python的过程中,运用所学的一些基础知识,进行一些简单的编程,可以收获很多乐趣.在生活中,LED灯无处不在,荧幕显示的广告词,给我们呈现出动态的视觉效果.下面,则以最简单的显示日期为例, ...
- Python “七段数码管绘制”
这是中国慕课上北理工的"Python语言程序设计"中的一课,仅此记录一下这段代码. #版本一 数字线条连续 import turtle def drawLine(draw):tur ...
- python七段数码管绘制学号_python七段数码管绘制
import turtle,time def drawGap(): #绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw): #绘制单段数码管 ...
最新文章
- 计算机专业面试国王的问题,阿卜杜拉国王科技大学电气与计算机科学面试经验汇总...
- python 线性回归 统计检验 p值_SPSS 25 数学统计分析工具
- MySQL中如何修改表
- WS_EX_COMPOSITED是个BUG?
- 架构师论坛 创业_我在早期创业时作为设计师学到的东西
- linux限制单个ip频繁连接,限制单个IP并发TCP连接的方法
- workbench出现“Unable to start the geometry editor”
- python安装requests模块失败_No module named quot;Cryptoquot;,如何安装Python三方模块Crypto...
- php 按照laravel5.5,Laravel5.5 综合使用
- mysql php 封装类_PHP递归实现层级树状展开的方法
- 关于U-Net结构的更浅显更易懂的解释
- cnblog中添加数学公式支持
- 第一次作业+105032014140
- android pcm数据格式,android 实时PCM数据编码成AAC
- 树莓3b adc模块pcf8591
- 数据访问安全代理 CASB
- jquery-question
- 招标过程中如何讲标?
- Involution论文解读:从卷积变换出的神经网络新算子
- 计算机二级C语言编程题解读:计算学生成绩的标准差
热门文章
- 北京师范大学网络教育期末考试计算机,北京师范大学网络教育———《计算机应用基础》第二章同步练习题(4)...
- iextensionunit类_Java ICompilationUnit.reconcile方法代码示例
- 大白话系列之java_大白话系列之——Java的面向对象思想
- C语言浮数据范围和字节,C语言各种数据类型在系统中占的字节和取值范围.docx...
- python的符号lt和gt怎么输入_lt;lt;Python基础教程gt;gt;学习笔记 | 第12章 | 图形用户界面...
- php 输出答案,php 如何只输出最后生成的那个值??
- Oracle表的分区update卡着,分区表update global indexes引起表阻塞
- 浙江万里学院计算机专业宿舍,浙江万里学院宿舍条件,宿舍几人间环境好不好(图片)...
- android 简单的音乐播放器实现播放模式的切换
- 四十一、Python统计模块statistics