七段数码管数字时钟实时显示显示(年月日时分秒)
用数码管显示系统实时时间需要用到turtle、datetime以及time这三个函数,调出系统时间进行运用并控制数码管绘制过程实现这一程序!最后呈现出来的结果会是一个动态的数码管,每秒钟刷新一次,来达到实时时钟的效果。代码如下:from turtle import *from datetime import datetimeimport timedef drawGap():#单段数码管间隔的绘制p
·
用数码管显示系统实时时间需要用到turtle、datetime以及time这三个函数,调出系统时间进行运用并控制数码管绘制过程实现这一程序!
最后呈现出来的结果会是一个动态的数码管,每秒钟刷新一次,来达到实时时钟的效果。
代码如下:
from turtle import *
from datetime import *
import time
def drawGap(): #每一小段数码管间隔的绘制
penup()
fd(6)
def drawLine(draw): #单个数码管的绘制
drawGap()
pendown() if draw else penup()
fd(40)
drawGap()
right(90)
def drawDigit(d):
speed(50)
drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,6,8] else drawLine(False)
left(90)
drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)
left(180)
penup()
fd(20)
def drawDate(date): #调用系统时间,格式为"%Y!",以此类推
pencolor("red") #全局数码管颜色设置
for i in date:
if i == "!":
write("年", font = ("Arial", 25, "normal"))
pencolor("blue") #单个数码管颜色设置
fd(40) #单个数码管的间隔
elif i == "@":
write("月", font = ("Arial", 25, "normal"))
pencolor("orange")
fd(40)
elif i == "#":
write("日", font = ("Arial", 25, "normal"))
pencolor("green")
fd(40)
elif i == "$":
write("时", font = ("Arial", 25, "normal"))
pencolor("pink")
fd(40)
elif i == "^":
write("分", font = ("Arial", 25, "normal"))
pencolor("purple")
fd(40)
elif i == "&":
write("秒", font = ("Arial", 25, "normal"))
else:
drawDigit(eval(i)) #使用eval()函数将数字变为整数
def main():
setup(1500,350,300,300)
while True:
reset()
penup()
fd(-600)
pensize(8)
tracer(False) #隐藏绘图,省去绘图过程的时间,直接显示绘画结果
hideturtle()
drawDate(datetime.now().strftime("%Y!%m@%d#%H$%M^%S&"))
time.sleep(1) #推迟一秒执行
done()
main()
运行结果如下:
更多推荐
已为社区贡献1条内容
所有评论(0)