python七段数码管时钟
python七段数码管时钟(静态刷新版)
仿照”七段数码管绘制“编写一段程序,实现如下的时钟效果
图片要求
直接上代码
import turtle as t
import time
def pen():
t.up()
t.fd(6)
t.down()
def drawline(draw): #绘制单段数码管
pen()
t.pendown() if draw else t.penup() # draw 为真则执行 pendown ,否则执行 penup
t. fd(40)
pen()
t.right(90)
def drawdigit(digit): #根据数字绘制七段数码管
drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)
drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,2,6,8] else drawline(False)
t.left(90)
drawline(True) if digit in [0,4,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False)
drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False)
t.left(180)
t.penup()
t.fd(25)
def drawday(day): #获取要输出的数字
for i in day:
if i == ‘-’:
t.write(‘时’,font = (‘隶书’,28,‘normal’))
t.pencolor(‘green’)
t.fd(40)
elif i == ‘=’:
t.write(‘分’,font = (‘隶书’,28,‘normal’))
t.pencolor(‘blue’)
t.fd(40)
elif i == ‘+’:
t.write(‘秒’,font = (‘隶书’,28,‘normal’))
else:
drawdigit(eval(i))
def main():
t.setup(800,350,200,200)
t.speed(0)
t.color(‘red’)
t.hideturtle()#隐藏画笔
t.penup()
t.fd(-360)
t.pensize(5)
drawday(time.strftime(’%H-%M=%S+’, time.localtime()))
t.done()
main()
关键代码提示:
如下列代码所示,使用time.localtime()函数获取本地时间。
drawDate(time.strftime(’%H-%M=%S+’, time.localtime( )))
python七段数码管时钟(动态刷新版)
静态的我们已经会了,动态的怎么能少呢!
动态刷新
仿照”七段数码管时钟“编写一段程序,实现如下的时钟效果。
要求:时间具有动态刷新功能,即每秒刷新一次
图片要求
在原有静态版修改
关键代码提示:
如下列代码所示,使用time.localtime()函数获取本地时间。
drawDate(time.strftime(’%H-%M=%S+’, time.localtime()))
使用turtle.tracer([True/False])实现Turtle绘图轨迹的显示与隐藏。
#隐藏轨迹
turtle.tracer(False)
#显示轨迹
turtle.tracer(True)
使用time.sleep(n)函数实现时间延迟效果,注意使用前需要先引入time库。
import time
#延迟1秒
time.sleep(1)
代码参考
import turtle as t
import time
def pen():
t.up()
t.fd(6)
t.down()
def drawline(draw): #绘制单段数码管
pen()
t.pendown() if draw else t.penup() # draw 为真则执行 pendown ,否则执行 penup
t. fd(40)
pen()
t.right(90)
def drawdigit(digit): #根据数字绘制七段数码管
drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)
drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,2,6,8] else drawline(False)
t.left(90)
drawline(True) if digit in [0,4,5,6,8,9] else drawline(False)
drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False)
drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False)
t.left(180)
t.penup()
t.fd(25)
def drawday(day): #获取要输出的数字
for i in day:
if i == ‘-’:
t.write('时',font = ('隶书',28,'normal'))
t.pencolor('green')
t.fd(40)
elif i == '=':
t.write('分',font = ('隶书',28,'normal'))
t.pencolor('blue')
t.fd(40)
elif i == '+':
t.write('秒',font = ('隶书',28,'normal'))
else:
drawdigit(eval(i))
def main():
t.setup(800,350,200,200)
t.speed(0)
t.color(‘red’)
t.hideturtle()#隐藏画笔
t.penup()
t.fd(-360)
t.pensize(5)
while(1):
t.penup( )
t.goto(-300,0)
t.pendown( )
t.tracer(False)
t.pencolor('red')
drawday(time.strftime('%H-%M=%S+', time.localtime()))
time.sleep(0.1)
t.clear() #清屏
t.done()
main()
.
.
.
.
来自一个自娱自乐的python小白
原文链接:https://blog.csdn.net/SleepWalker_/article/details/105248474