🤵♂️ 个人主页@老虎也淘气 个人主页
✍🏻作者简介:Python学习者
🐋 希望大家多多支持我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注
要想绘制可以显示时间的数码管肯定要用到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()
效果如下: