Python实例之七段数码管绘制理解.doc_第1页
Python实例之七段数码管绘制理解.doc_第2页
Python实例之七段数码管绘制理解.doc_第3页
Python实例之七段数码管绘制理解.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python实例之七段数码管绘制理解八段线的编号如上图所示。基本逻辑为画笔从1走到7,每一步画笔落下代表画或者是画笔抬起代表不画,最终形成1-9的数字排列。以下理解均为个人学习理解。代码1.0import turtle,datetime导入turtle库和datetime库def drawLine(draw):定义函数drawLine,主要目的是为了判断这一笔该画还是不该画 turtle.pendown() if draw else turtle.penup()如果得到指令draw(True)那就画,不然就把画笔抬起来。 turtle.fd(40)画笔向前画40单位长度 turtle.right(90)画笔向右旋转90度def drawDigit(d): drawLine(True) if d in 2,3,4,5,6,8,9 else drawLine(False)如果数字d在2,3,4,5,6,8,9中,那么画序号1 drawLine(True) if d in 0,1,3,4,5,6,7,8,9 else drawLine(False)如果数字d在0,1,3,4,5,6,7,8,9中,那么画序号2 drawLine(True) if d in 0,2,3,5,6,8,9 else drawLine(False)如果数字d在0,2,3,5,6,8,9中,那么画序号3 drawLine(True) if d in 0,2,6,8 else drawLine(False)如果数字d在0,2,6,8中,那么画序号4 turtle.left(90)画笔方向向左转动90度,序号4方向调整为序号5方向 drawLine(True) if d in 0,4,5,6,8,9 else drawLine(False)如果数字d在0,4,5,6,8,9中,那么画序号5 drawLine(True) if d in 0,2,3,5,6,7,8,9 else drawLine(False)如果数字d在0,2,3,5,6,7,8,9中,那么画序号6 drawLine(True) if d in 0,1,2,3,4,7,8,9 else drawLine(False)如果数字d在0,1,2,3,4,7,8,9中,那么画序号7 turtle.left(180)将画笔方向向左转动180度,画笔方向调整为向右方向。 turtle.penup()将画笔向上抬起 turtle.fd(20)画笔向前移动20单位至此一个数字位完全完成移动def drawDate(date):定义函数drawDate for i in date:对于date中的每个数字,赋值给i drawDigit(eval(i)将字符串i变为数字格式i后,执行drawDigit函数def main():创建主函数 turtle.setup(800,350,200,200) 主函数的画框设置为宽度800,高度350,开始坐标为200,200turtle.penup()抬起画笔 turtle.fd(-300) 将画笔方向向后移动300个距离 turtle.pensize(5) 画笔大小设置为5 drawDate(datetime.datetime.now().strftime(%Y%m%d) 将当前时间用数码管显示turtle.hideturtle()隐藏画笔箭头main()执行main()函数 代码2.0 带年月日显示的数码管import turtle,datetime导入函数库turtle,datetimedef drawGap():定义函数drawGap(),主要是为了设定画笔向前方前进5个单位 turtle.penup() 抬起画笔 turtle.fd(5) 画笔先前前进5个单位def drawLine(draw):定义函数drawLine(),主要是为了控制画与不画,真为画,假为不画 drawGap() 执行函数drawGap(),让画笔向前进5个单位 turtle.pendown() if draw else turtle.penup() 如果如果draw,则画笔落 turtle.fd(40) 画笔向前前进40个单位 drawGap() 执行drawGap(),前进5个单位,让每笔之间形成空隙 turtle.right(90) 画笔方向向右旋转90度。def drawDigit(d):定义函数drawDigit(),用来控制画与不画 drawLine(True) if d in 2,3,4,5,6,8,9 else drawLine(False) 如果d在2,3,4,5,6,8,9中,则画;否则不画 drawLine(True) if d in 0,1,3,4,5,6,7,8,9 else drawLine(False) 如果d在0,1,3,4,5,6,7,8,9中,则画;否则不画 drawLine(True) if d in 0,2,3,5,6,8,9 else drawLine(False) 如果d在0,2,3,5,6,8,9中,则画;否则不画 drawLine(True) if d in 0,2,6,8 else drawLine(False) 如果d在0,2,6,8中,则画;否则不画 turtle.left(90) 将画笔方向向左旋转90度 drawLine(True) if d in 0,4,5,6,8,9 else drawLine(False) 如果d在0,4,5,6,8,9中,则画;否则不画 drawLine(True) if d in 0,2,3,5,6,7,8,9 else drawLine(False) 如果d在0,2,3,5,6,7,8,9中,则画;否则不画 drawLine(True) if d in 0,1,2,3,4,7,8,9 else drawLine(False) 如果d在0,1,2,3,4,7,8,9中,则画;否则不画 turtle.left(180) 画笔方向向左旋转180度 turtle.penup() 抬起画笔 turtle.fd(20) 画笔向前移动20单位,至此完成一个数字的循环def drawDate(date):定义函数drawDate(),主要是为了将当前时间调整为计算机可运行格式 turtle,pencolor(“red”) 将画笔的颜色设置为red for i in date: 对于参数date中的每一位符号 if i = -: 如果符号为“- turtle.write(年,font=(“Arial”,18,”normal”) 画笔写“年“,格式为Arial,18号 turtle.pencolor(“green”) 画笔颜色为green turtle.fd(40) 画笔向前移动40个单位 elif i = =: 如果i为”=” turtle.write(月,font=(“Arial”,18,”normal”) 画笔写“月“,格式为Arial,18号 turtle.pencolor(“blue”) 画笔颜色为blue turtle.fd(40) 画笔向前移动40个单位 elif i =+: 如果i为“+” turtle.write(日,font=(“Arial”,18,”normal”) 画笔写“日”,格式为Arial,18号 else: 如果是其它的话 drawDigit(eval(i) 执行函数drawDigit()即可,相应的数字会在数码管上显示def main():定义函数main() turtle.setup(800,350,200,200) 设置画笔大小为800宽,350高,画笔起点坐标为200,200 turtle.penup() 将画笔抬起 turtle.fd(-350) 将画笔向

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论