首页 > 编程语言 > 详细

python倒计时屏保

时间:2019-02-27 10:32:24      阅读:236      评论:0      收藏:0      [点我收藏+]
import turtle, time
import winsound
import math

def drawGap():
    turtle.penup()
    turtle.fd(5)

def drawLine(draw):
    drawGap()
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    drawGap()
    turtle.right(90)

def drawDigit(d):
    drawLine(True) if d in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)  # g
    drawLine(True) if d in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)  # c
    drawLine(True) if d in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)  # d
    drawLine(True) if d in [0, 2, 6, 8] else drawLine(False)  # e
    turtle.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)
    turtle.left(180)
    turtle.penup()
    turtle.fd(20)

def drawDate(date):
    turtle.pencolor(red)
    if + in date:
        for i in date:
            if i == -:
                turtle.write(, font=(Arial, 18, normal))
                turtle.pencolor(green)
                turtle.fd(40)
            elif i == =:
                turtle.write(, font=(Arial, 18, normal))
                turtle.pencolor(blue)
                turtle.fd(40)
            elif i == +:
                turtle.write(, font=(Arial, 18, normal))
                turtle.pencolor(yellow)
                turtle.fd(40)
            else:
                drawDigit(eval(i))
    else:
        turtle.goto(-180,-50)
        turtle.write(date, font=(Arial, 70, normal))   # 打印超时文字

def init():
    turtle.setup(1280, 720, 0, 0)  # 设置画布大小 200 200 为屏幕位置
    turtle.speed(10)
    turtle.penup()
    turtle.goto(0, 0)
    turtle.fd(-200)     # 画笔起始位置
    turtle.pensize(5)

def main(book_time):
    over_flag = False
    beep_flag = True
    # count = book_time - time.time() + 0    # 画面延时n秒自动关闭
    try:
        while True:
            over_time = book_time - time.time()
            # count -= 1
            if over_time > 0:
                time_string = time.strftime("%M=%S+", time.localtime(over_time))
            else:
                time_string = Time out !!
                over_flag = True
            turtle.clear()
            init()
            turtle.getscreen().tracer(30, 0)
            drawDate(time_string)  # 格式化时间 2017-05=02+ 控制输入年日月
            time.sleep(1)
            turtle.hideturtle()
            if over_flag and beep_flag:
                for i in range(100):
                    winsound.Beep(int(600 * math.sin(i / 6.28) + 700), 100)
                beep_flag = False
    except:
        pass

minites = 60 * 0.1
book_time = time.time() + minites
main(book_time)

 

python倒计时屏保

原文:https://www.cnblogs.com/yygy/p/10435646.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!