Python编写时间显示程序,要求时钟程序每秒钟刷新一次
作者:互联网
数码管显示时间,动态刷新
- 运行截图
- 源代码
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