python清屏_用python写个倒计时脚本软件

d5ef695b9b2329f28f2ce80b861b2a80.png

嗨,你好小伙伴~

之前的python创作:用Python写个翻译软件 | 用Python写个理财计算器 | 

学编程路上遇到一个问题,在电脑前坐着坐着坐久了就忘了时间了。。。 忘了吃饭。。。 忘了去厕所。。。 忘了游戏里收割。。。 忘了做饭时候开着火定时5分钟。。。 忘了说好的10分钟后出门。。。。 可能,你也有以上这困惑?so,一起用python写个倒计时软件吧!孔子说把问题放在face前,就不是问题了。 「文末有视频演示」 5fec48441a70a6ed74a2471f03e7b21b.gif
01-设想 想的清楚就会做得明白,这个小程序脚本我设想需要以下几方面功能:
  • 倒计时结束需要有声音提示—听觉上刺激我

  • 可以看到倒计时的时间显示—视觉上提醒我

  • 可以输入简单几分钟的—应对几分钟小任务

  • 也可以输入跨天的—应对跨天的大任务(电脑不关机的话)

02-整结构和素材首先在pycharm里 新建一个工程,然后在这个工程下新建一个 py文件并找到一个 提示音 文件, 如下方截图。 e0c4a2b57a0e890c5523b354d3b3bf97.png 这个 声音素材哪里找 呢? 这需要万能的百度,我是在这个网站找到的: http://www.aigei.com/ 随便找到一个让你紧张刺激的就行~咱这是定制嘛~~ c74460479bcff0822783854ad5db0620.png

03-Coding

创建好上方的结构,那么就完成90%工作内容了,剩下的就交给键盘打字了

55b13bd154201ef28dabd76c37fea294.gif

用到的包

掉包侠需要用到的包如下:倒计时嘛,怎么少得了time和datetime;os是清屏用的,pygame是播放音乐用的。

import time,os
from pygame import mixer
import datetime

解决播放音频文件问题

用pygame模块的音乐功能来放音乐,别的播放音乐的包也有不少,比如`mutagen`但pygame我不用搜索就知道怎么用了,所以写一个放音频的函数

默认传入个文件名后,设置从头播放,满音量播放(这个视你用的音频文件音量大小去调节)

def playMusic(filename, loops=0, start=0.0, value=1):
    """
    :param filename: 文件名
    :param loops: 循环次数
    :param start: 从多少秒开始播放
    :param value: 设置播放的音量,音量value的范围为0.0到1.0
    """
    mixer.init()
    mixer.music.load(filename)
    mixer.music.play(loops=loops, start=start)
    mixer.music.set_volume(value)  # 来设置播放的音量,音量value的范围为0.0到1.0。

解决打印秒数问题

我的需求里有一个是:能看到还剩多少秒就结束倒计时了,因此需要做一个打印时间的方法,这个方法如下:

  • 默认了日期、小时、分钟、秒都是0,这样传哪个参数就用哪个参数参与seconds 那行的公式计算,为0的自然乘积还是0

  • timess 这行指的是:如果我输入33分钟,我要看到33分钟后是几点,所以用datetime的方法给算一下。

  • for循环:因为我要看到秒数一点一点减少,所以这个循环就能实现这个功能。哪个time.sleep()一定给1哈,不然你的时间感跟别人不一样。。

def daojishi(day=0, hour=0, min=0.0, second=0):
    print(f'总时间{day}day; {hour}H; {min}min')
    seconds = int(day * 24 * 3600 + hour * 3600 + min * 60 + second)
    timess = (datetime.datetime.now() + datetime.timedelta(days=day, hours=hour, minutes=min)).strftime("%Y/%m/%d %H:%M:%S")
    print(f'目标时间:{timess}')
    for i in reversed(range(0, seconds)):
        print("\r倒计时:{}秒".format(i), end="")
        time.sleep(1)

    playMusic('BeepStop.WAV')
    time.sleep(0.2)

解决输入时间问题

我的需求还有一句,可以在一天内算,也可以在多天跨天的算,因此有了以下这两个方法

  • in one day方法里,直接输入倒计时分钟数,看里边有个float转换,因此想输入4分30秒的话,直接输入4.5即可;

  • 如果输入q则退出这个计时;

  • 为了防止误触、或者输入了不该输入的,封装个try/except;

  • in some day方法里,可以输入天数、小时数,分钟数。比如1天1小时1分钟,比如8小时后那就输入0天8小时0分钟。。。

# 一天的
def in_one_day():
    os.system('clear')
    while 1:
        try:
            os.system('clear')
            get_time = input('请输入倒计时时间(单位:分)')
            if get_time == 'q':
                break
            else:
                os.system('clear')
                daojishi(min=float(get_time))
        except Exception as e:
            print('输入错误,请输入倒计时分钟')
            time.sleep(1)

#多天的
def in_some_day():
    os.system('clear')
    while 1:
        try:
            os.system('clear')
            print('请输入天--时--分')
            get_time_day = input('请输入倒计时天(单位:天)')
            get_time_hour = input('请输入倒计时(单位:小时)')
            get_time_min = input('请输入倒计时分(单位:分钟)')
            if get_time_day == 'q' or get_time_hour == 'q' or get_time_min == 'q':
                break
            os.system('clear')
            daojishi(day=int(get_time_day), hour=int(get_time_hour), min=int(get_time_min))
        except Exception as e:
            print('输入错误,请输入倒计时分钟')
            time.sleep(1)

解决启动端口

上边的所有已经解决了99.999%的内容,还差那么一丁点就是启动他们,因此再做一个启动入口:

  • 这个if __name__....这句有点多余,但我看别人都这么写的,,我就加上吧,谁知道为嘛这么写,请留言!

  • 启动后先判定计算1天内的,还是计算跨天的,1或2选择,q键加回车退出

  • 判定后启动上边的输入时间函数~一切就那么顺滑。

def qidong():
    while 1:
        os.system('clear')
        cut = input('1为1天内计时, 2为多天计时, q退出\n\n请选择:')
        try:
            if cut == 'q':
                break
            elif int(cut) == 1:
                in_one_day()
            elif int(cut) == 2:
                in_some_day()
            else:
                print('you!输入错误')
                time.sleep(1)

        except Exception as e:
            os.system('clear')
            print('you!输入错误')
            time.sleep(1)


if __name__ == '__main__':
    qidong()

可以做但我没做的

目前来说这个我天天用,做个饭、烧个水、桌子趴会、灵活的提示等足以。

我的本意就是,设定一个时间后,到点提醒我,现在它满足了。

并且在终端中运行,可以开好几个窗口一块多进程运行。

如果说可以升级迭代的,以下内容可能可以拓展:

  • 加UI面板页面,让人看着更专业一些

  • 打包,方便别人使用

  • 做到Web页面,浏览器里css给渲染更好看点

91867d262a6c2c53e864ef5aec474443.gif

最后,录个操作过程如下短视频:

招人了

秀儿

come on !

第一时间加入本公众号交流群, 共同交流Python  数据分析  SQL  Hive  Web爬虫等等内容 

添加vx:  rovesoul    邀请你的来到!

历史文章:

MySQL查询

MySQL 操作之「增改删」

用Python写个理财计算器

新型冠状肺炎疫情数据爬虫

通俗易懂:基金、指数基金、定投

e8509bbedd69a3344f88ea4ffcd8f39f.png


——The End——

欢迎留言、转发、关注SUMER、点击 [ 在看 ] 一条龙~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值