标签:每秒钟 right penup Python 30 程序 drawLine length fd
数码管显示时间,动态刷新
- 运行截图
- 源代码
from turtle import * #导入turtle包
from datetime import datetime
import time
def drawLine(draw, length): # 绘制单段数码管
if (draw): #if函数,绘制六边形路径
pendown()
begin_fill() #开始填充
left(45)
fd(int(length / 10.0 * (2 ** 0.5))) #前进步数,int()把数值转化成整数
right(45)
fd(int(length * 8 / 10.0))
right(45)
fd(int(length / 10.0 * (2 ** 0.5)))
right(90)
fd(int(length / 10.0 * (2 ** 0.5)))
right(45)
fd(int(length * 8 / 10.0))
right(45)
fd(int(length / 10.0 * (2 ** 0.5)))
right(135)
end_fill() #结束填充
penup()
fd(length)
right(90)
def drawDigit(digit, length): # 根据数字绘制七段数码管,声明函数drawDigit带有两个参数
drawLine(True, length) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False, length) #如果参数digit在列表中,调用drawLine函数参数draw为True,并把参数length传给drawLine函数
drawLine(True, length) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False, length)
drawLine(True, length) if digit in [0, 2, 3, 5, 6, 8, 9] else drawLine(False, length)
drawLine(True, length) if digit in [0, 2, 6, 8] else drawLine(False, length)
left(90)
drawLine(True, length) if digit in [0, 4, 5, 6, 8, 9] else drawLine(False, length)
drawLine(True, length) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False, length)
drawLine(True, length) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False, length)
left(180)
penup()
fd(20)
def drawDay(day): #获取要输出的数字
for i in day:
if i == '-':
#write('年', font=('Arial', 18, 'normal'))
fd(30)
pendown()
pencolor('blue')
fd(20)
penup()
fd(30)
pendown()
pencolor('#dc6016')
elif i == '=':
#write('月', font=('Arial', 18, 'normal'))
fd(30)
pendown()
pencolor('blue')
fd(20)
penup()
fd(30)
pendown()
pencolor('#fba819')
elif i == '+':
#write('日', font=('Arial', 18, 'normal'))
pencolor('#fbc819')
fd(60)
elif i == '*':
#write('时', font=('Arial', 18, 'normal'))
pencolor('blue')
fd(30)
right(90)
penup()
fd(10)
pendown()
fd(20)
penup()
left(180)
fd(40)
pendown()
fd(20)
right(180)
fd(30)
penup()
left(90)
pencolor('#e56526')
fd(30)
elif i == '#':
#write('分', font=('Arial', 18, 'normal'))
pencolor('blue')
fd(30)
right(90)
penup()
fd(10)
pendown()
fd(20)
penup()
left(180)
fd(40)
pendown()
fd(20)
right(180)
fd(30)
penup()
left(90)
fd(30)
pencolor('purple')
elif i == '?':
write(' ')
fd(60)
else:
drawDigit(eval(i),30)
def main(): #main主函数
setup(1500,350,200,200)
fd(-600)
pensize(5)
hideturtle() # 隐藏海龟
while True:
tracer(False) #加快作图,一次性画好
penup()
goto(-600, 0)
color('red', 'yellow')
drawDay(datetime.now().strftime('%Y-%m=%d+%H*%M#%S?')) #调用drawData函数,获得要输出的数字串
time.sleep(1)
clear() #清屏
done()
main() #执行main函数
如果对您解决问题有所帮助,点个赞支持下小博叭
标签:每秒钟,right,penup,Python,30,程序,drawLine,length,fd 来源: https://blog.csdn.net/m0_46673600/article/details/112731477
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。