【用python的标准库画出显示实时时间的数码管】
【摘要】 要想绘制可以显示时间的数码管肯定要用到turtle和time两个标准库。import turtle as timport time码管由七段构成,要想画出一个数码管,就要先从它的一段画起,然后按照顺序画完七段,如图所示:首先需要定义一个画一段的函数,我们需要一点点的距离,所以还需要一个产生距离的函数。def drawgap(): t.penup() t.fd(5)def draw...
要想绘制可以显示时间的数码管肯定要用到turtle和time两个标准库。
import turtle as t
import time
码管由七段构成,要想画出一个数码管,就要先从它的一段画起,然后按照顺序画完七段,如图所示:
首先需要定义一个画一段的函数,我们需要一点点的距离,所以还需要一个产生距离的函数。
def drawgap():
t.penup()
t.fd(5)
def drawline(draw):
drawgap()
t.pendown() if draw else t.penup()
t.fd(40)
drawgap()
t.right(90)
义完画一段的函数,就需要画整个数字了,0-9的数码管显示会有的部分不显示,有的部分显示,所以我们需要定义一个判断函数,来判断一个数字哪几段需要画出来。
def drawdight(dight):
drawline(True) if dight in [2,3,4,5,6,8,9] else drawline(False)
drawline(True) if dight in [0,1,3,4,5,6,7,8,9] else drawline(False)
drawline(True) if dight in [0,2,3,5,6,8,9] else drawline(False)
drawline(True) if dight in [0,2,6,8] else drawline(False)
t.left(90)
drawline(True) if dight in [0,4,5,6,8,9] else drawline(False)
drawline(True) if dight in [0,2,3,5,6,7,8,9] else drawline(False)
drawline(True) if dight in [0,1,2,3,4,7,8,9] else drawline(False)
t.left(180)
t.penup()
t.fd(20)
一个数字画完了,然而日期和时间的显示需要很多数字组合显示,所以需要一个画出日期的函数(内部的判断和循环需要遵照time库的时间显示方式)
def drawdate(date):
for i in date:
if i == '-':
t.write('年',font=('宋体',18,'normal'))
t.pencolor('green')
t.fd(40)
elif i == '+':
t.write('月',font=('宋体',18,'normal'))
t.pencolor('purple')
t.fd(40)
elif i == '=':
t.write('日',font=('宋体',18,'normal'))
t.pencolor('blue')
t.fd(40)
elif i == '*':
t.write('时',font=('宋体',18,'normal'))
t.pencolor('gold')
t.fd(40)
elif i == '#':
t.write('分',font=('宋体',18,'normal'))
t.pencolor('brown')
t.fd(40)
elif i == '&':
t.write('秒',font=('宋体',18,'normal'))
t.pencolor('coral')
t.fd(40)
else:
drawdight(eval(i))
最后获取时间,设置窗体,调用函数
def main():
t.setup(1600,400)
t.pencolor('red')
t.width(10)
t.speed(5)
t.penup()
t.fd(-600)
drawdate(time.strftime('%Y-%m+%d=%H*%M#%S&',time.localtime()))
t.done()
main()
效果如下:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)