python七段数码管绘制left(90)_Python"七段数码管绘制显示日历"项目

本文介绍了一个Python项目,通过turtle模块来绘制七段数码管,展示当前的年月日时间。代码详细解释了如何根据数码管的段落定义绘制每个数字,并按时间顺序排列显示。最终结果显示了七段数码管形式的时间。
摘要由CSDN通过智能技术生成

项目大致需求:利用turtle画板画出当前时间(年月日),如下图:

6609a1af19ed

turtle画板画日历

利用到七段数码管,如下图:

6609a1af19ed

七段数码管

如上图可以看到对于每个数字,都有不同的显示段,例如数字0显示的是图中七段数码管中的abcdef这六段显示管。但是在本项目中,字母编号与上图中不同,我是按照上图中g-b-a-f-e-d-c的顺序分别赋值a-f

绘制单个数码管:

对于本项目来说,我是按照下图中1-7-6-5-4-3-2这样的顺序来的,当然你也可以自己调整。

6609a1af19ed

绘制单个数码管

气死我了,上代码😂😂😂:

# @Time : 2020/4/6

# @File : Chap03.py

# @Title : "七段数码管绘制" 项目

# @Software: PyCharm

import turtle as t

import time

t.setup(width=1.0,height=1.0)

t.pensize(5)

t.pencolor('red')

t.speed(8)

t.up()

t.bk(700)

t.down()

#drawline()函数会绘制显示的数码管

def drawline():

t.up()

t.fd(10)

t.down()

t.fd(60)

t.up()

t.fd(10)

t.down()

#drawnoline()函数会绘制不显示的数码管(也就是提笔,向前一段距离再落笔,并没有留下痕迹)

def drawnoline():

t.up()

t.fd(80)

t.down()

#drawword()函数绘制对应的汉字,年月日时分秒,同时会重新设置画笔颜色位置等

def drawword(word,color="red"):

t.up()

t.fd(20)

t.down()

t.write(word,font=("Courier",14,"bold"))

t.pencolor(color)

t.up()

t.fd(40)

t.down()

#获取当前系统时间

time=time.localtime()

#timelist是当前时间全部数字的列表

timelist=list(str(time.tm_year)+str(time.tm_mon)+str(time.tm_mday)+str(time.tm_hour)+str(time.tm_min))

year_len=len(str(time.tm_year))

mon_len=len(str(time.tm_mon))

day_len=len(str(time.tm_mday))

hour_len=len(str(time.tm_hour))

min_len=len(str(time.tm_min))

write_len=0

#这里定义的字典代表每个数字显示的是哪几段数码管,不显示的数码管字母就不在对应的值中

dict={'0':['b','c','d','e','f','g'],

'1':['b','g'],

'2':['a','b','c','e','f'],

'3':['a','b','c','f','g'],

'4':['a','b','d','g'],

'5':['a','c','d','f','g'],

'6':['a','c','d','e','f','g'],

'7':['b','c','g'],

'8':['a','b','c','d','e','f','g'],

'9':['a','b','c','d','f','g']}

for item in timelist:

list=dict.get(item,"False")

print("list={}".format(list))

for i in range(97, 104):

if chr(i) in list:

print(chr(i)+" zai")

drawline()

if chr(i)!='d':

t.left(90)

continue

else:

print(chr(i)+" buzai")

drawnoline()

if chr(i) != 'd':

t.left(90)

continue

t.seth(0)

t.up()

t.fd(20)

t.down

write_len=write_len+1

if write_len == year_len:

drawword("年",color="blue")

if write_len == year_len+mon_len:

drawword("月",color="green")

if write_len == year_len+mon_len+day_len:

drawword("日",color="orange")

if write_len == year_len + mon_len+day_len+hour_len:

drawword("时",color="purple")

if write_len == year_len + mon_len+day_len+hour_len+min_len:

drawword("分")

t.hideturtle()

t.done()

最终运行结果如下图:

6609a1af19ed

七段数码管运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值