iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python turtle绘图——七段数码管显示数字和字母
  • 597
分享到

Python turtle绘图——七段数码管显示数字和字母

python 2023-10-25 14:10:30 597人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

一、运行结果 二、程序设计 七段数码管由7条线组成,以下图所标识的画图顺序为准进行程序设计。   首先导入turtle库并将其重命名为t。 import turtle as t 定义函数drawGap()用于绘制间隙,通过将画笔抬起,并

一、运行结果

二、程序设计

七段数码管由7条线组成,以下图所标识的画图顺序为准进行程序设计。

 

首先导入turtle库并将其重命名为t。

import turtle as t

定义函数drawGap()用于绘制间隙,通过将画笔抬起,并向前移动5个单位,来实现间隙的绘制。

def drawGap(): # 绘制间隙    t.penup()    t.fd(5) # 设置间隙大小

定义函数drawLine(draw)用于绘制线段,通过判断参数draw的布尔值,决定是否下笔绘制线段。如果布尔值为True,则将画笔放下,向前移动40个单位;如果布尔值为False,则将画笔抬起,向前移动40个单位。然后调用drawGap()函数绘制间隙,并将画笔右转90度,准备绘制下一段线。

def drawLine(draw): # 绘制数码管中的一段线     drawGap()     t.pendown() if draw else t.penup()     t.fd(40)     drawGap()     t.right(90)

之后,我们根据所要绘制的数字和字母定义函数drawDight(s),下图是数字和字母的数码管显示图。

 

以1号线段为例,数字中包含它的有2,3,4,5,6,8,9,字母中包含它的有a,b,d,e,f,h,k,n,o,p,q,s,t,w,x,y,z。

然后定义drawDight(s)函数,根据字符s绘制七段数码管。

根据不同的字符,调用drawLine()函数绘制对应的线段。通过判断字符s的值,决定绘制哪些线段。每绘制完一组线段,将画笔左转90度,准备绘制下一组线段。

def drawDight(s): # 根据字符绘制七段数码管     # 绘制1号线段    drawLine(True) if s in ['2','3','4','5','6','8','9','a','b','d','e','f','h','k','n','o','p','q','s','t','w','x','y','z'] else drawLine(False)     # 绘制2号线段    drawLine(True) if s in ['0','1','3','4','5','6','7','8','9','a','b','d','g','h','i','j','k','m','n','o','q','u','v','w','x','y'] else drawLine(False)     # 绘制3号线段    drawLine(True) if s in ['0','2','3','5','6','8','9','b','c','d','e','g','i','j','l','o','s','t','u','v','w','y','z'] else drawLine(False)     # 绘制4号线段    drawLine(True) if s in ['0','2','6','8','a','b','c','d','e','f','g','h','k','l','m','n','o','p','r','t','u','v','w','z'] else drawLine(False)    t.left(90)     # 绘制5号线段    drawLine(True) if s in ['0','4','5','6','8','9','a','b','c','e','f','g','h','k','l','m','p','q','r','t','u','w','x','y'] else drawLine(False)     # 绘制6号线段    drawLine(True) if s in ['0','2','3','5','6','7','8','9','a','c','e','f','g','i','k','m','p','q','r','s'] else drawLine(False)     # 绘制7号线段    drawLine(True) if s in ['0','1','2','3','4','7','8','9','a','d','h','i','j','m','p','q','u','w','y','z'] else drawLine(False)    t.right(180)    t.penup()    t.fd(30)

定义drawStr(Str)函数,用于依次绘制输入的字符串中的每个字符,通过遍历字符串中的每个字符,调用drawDight()函数进行绘制。

def drawStr(Str):    for x in Str:        drawDight(x)   

定义main()函数,用于设置全局参数和执行绘制操作。

在函数中,首先通过input()函数获取用户输入的一段字符,并将其赋值给变量a

然后设置画笔颜色为红色,设置窗口大小为1280x720,隐藏画笔,设置绘图速度为0,即最快速度,将画笔抬起并向后移动400个单位(设置绘图起点),设置画笔大小为5。

接着调用drawStr(a)函数来绘制用户输入的字符。

最后调用t.done()表示绘制完成。

def main(): # 全局设置     a=input('请输入一段字符:')     t.pencolor('red') # 设置画笔的颜色     t.setup(1280,720) # 设置窗口的大小     t.hideturtle() # 隐藏画笔              t.speed(0) # 设置画图速度            t.penup()      t.fd(-400) # 设置绘图起点              t.pensize(5) # 设置画笔大小     drawStr(a)     t.done()      

最后调用main()函数来执行整个绘制过程。

main()

三、源代码

import turtle as tdef drawGap(): # 绘制间隙    t.penup()    t.fd(5) # 设置间隙大小def drawLine(draw): # 绘制数码管中的一段线     drawGap()     t.pendown() if draw else t.penup()     t.fd(40)     drawGap()     t.right(90)def drawDight(s): # 根据字符绘制七段数码管     # 绘制1号线段    drawLine(True) if s in ['2','3','4','5','6','8','9','a','b','d','e','f','h','k','n','o','p','q','s','t','w','x','y','z'] else drawLine(False)     # 绘制2号线段    drawLine(True) if s in ['0','1','3','4','5','6','7','8','9','a','b','d','g','h','i','j','k','m','n','o','q','u','v','w','x','y'] else drawLine(False)     # 绘制3号线段    drawLine(True) if s in ['0','2','3','5','6','8','9','b','c','d','e','g','i','j','l','o','s','t','u','v','w','y','z'] else drawLine(False)     # 绘制4号线段    drawLine(True) if s in ['0','2','6','8','a','b','c','d','e','f','g','h','k','l','m','n','o','p','r','t','u','v','w','z'] else drawLine(False)    t.left(90)     # 绘制5号线段    drawLine(True) if s in ['0','4','5','6','8','9','a','b','c','e','f','g','h','k','l','m','p','q','r','t','u','w','x','y'] else drawLine(False)     # 绘制6号线段    drawLine(True) if s in ['0','2','3','5','6','7','8','9','a','c','e','f','g','i','k','m','p','q','r','s'] else drawLine(False)     # 绘制7号线段    drawLine(True) if s in ['0','1','2','3','4','7','8','9','a','d','h','i','j','m','p','q','u','w','y','z'] else drawLine(False)    t.right(180)    t.penup()    t.fd(30)def drawStr(Str):    for x in Str:        drawDight(x)          def main(): # 全局设置     a=input('请输入一段字符:')     t.pencolor('red') # 设置画笔的颜色     t.setup(1280,720) # 设置窗口的大小     t.hideturtle() # 隐藏画笔              t.speed(0) # 设置画图速度            t.penup()      t.fd(-400) # 设置绘图起点              t.pensize(5) # 设置画笔大小     drawStr(a)     t.done()      main()

来源地址:https://blog.csdn.net/ZYB1300704781/article/details/131748443

--结束END--

本文标题: Python turtle绘图——七段数码管显示数字和字母

本文链接: https://www.lsjlt.com/news/442555.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作