基于speech模块的久坐提醒小程序「建议收藏」

基于speech模块的久坐提醒小程序「建议收藏」每天在电脑前坐很长的时间,因为有时候太过投入一下子就过去了若干个小时,容易猝死。于是心血来潮的想要写一个防久坐提醒小程序:第一种模式(最简单模式),若输入伏案工作时间数值不对则产生一个错误并退出。代码如下:importspeechimporttimeclassDebug:def__init__(self):self.start_time=time.time()self.minutes=int(input(“How

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

每天在电脑前坐很长的时间,因为有时候太过投入一下子就过去了若干个小时,容易猝死。于是心血来潮的想要写一个防久坐提醒小程序
为了搞清楚speech的调用方法,请先阅读这一篇speech模块的使用方法
第一种模式(最简单模式),若输入伏案工作时间数值不对则产生一个错误并退出。
代码如下:

import speech
import time


class Debug:
    def __init__(self):
        self.start_time = time.time()
        
        self.minutes = int(input("How many minutes do you prefer: \n"))
    
        if 0 >= self.minutes or self.minutes > 60:
            raise ValueError("The input number should in interval (0, 60]")
                    
        self.seconds = self.minutes * 60
        speech.say("Jetzt los")
        
    def mainProgram(self):
        while round(time.time() - self.start_time) != self.seconds:
            pass
        speech.say("Du solllest dich ausruhen")				
        
        
main = Debug()
main.mainProgram()

然而每次都要退出并重新运行一次就显得很麻烦,并且当输入的值不能够被转换为整数类型时程序会直接报错。于是可以进行循环输入工作时间,直到工作时间符合要求,并且我们也可以在mainProgram中加入其他的附加功能,比如过一段时间的提醒,甚至是毒鸡汤等等,可自由发挥,代码如下:

import speech
import time


class Debug:
    def __init__(self):
        self.start_time = time.time()
        
        self.flag = True
        
        self.minutes = input("How many minutes do you prefer: \n")
        
        while self.flag:
            if self.minutes.startswith('-'):
                if self.minutes.lstrip('-').isdigit():
                    self.minutes = int(self.minutes)
                else:
                    print("")
                    print("The input should be a number in interval [0, 60]~", end="")
                    self.minutes = input("please input a correct value: \n")
                    continue 
                
            elif self.minutes.lstrip('-').isdigit():
                self.minutes = int(self.minutes)
                
            else:
                print("")
                print("The input should be a number in interval [0, 60]~~", end="")
                self.minutes = input("please input a correct value: \n")
                continue 
                
                
            if 0 < self.minutes <= 60:
                speech.say("Jetzt los")
                self.flag = False
            else:
                print("")
                print("The input number should in interval [0, 60]~~~", end="")
                self.minutes = input("please input a correct value: \n")
                continue
                    
        self.seconds = self.minutes * 60
        
        
    def mainProgram(self):
        while round(time.time() - self.start_time) != self.seconds:
            pass
        speech.say("Du solllest dich ausruhen")
        
        
main = Debug()
main.mainProgram()

至此,一个简单的防久坐语音提醒小程序就完成了,当然还可以再添加其他的功能,甚至可以结合Pygame模块使用,功能会更加的强大。
说明:程序中打印的~~~~~~符号只是为了在debug时进行区分。直接拷贝上述程序可能无法运行,因为我的计算机默认语言为德语,而一般计算机的默认语言为英语或者是汉语,因此可以将speech.say()中的内容替换为英语或者汉语。 强烈推荐先阅读speech模块的使用方法
如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187316.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月19日 下午10:07
下一篇 2026年4月19日 下午10:13


相关推荐

  • Linux之ant安装部署「建议收藏」

    Linux之ant安装部署「建议收藏」 今天呢,在这里讲下linux环境下ant的部署,废话不多说,直接进入教程。 首先呢,先安装基础环境Java,在这里就不多说了…..不熟悉的小伙伴可以百度找找,很简单的……. 接下来呢,就开始ant的部署,具体分为如下几个步骤:  1.获取介质:       在apache的官网中直接下载,下载地址为:http://ant.apache.org/    …

    2022年7月24日
    17
  • Qt动画播放之QMovie类[通俗易懂]

    Qt动画播放之QMovie类[通俗易懂]主要是用到QMovie类实现在事件触发时开启动画播放效果(需要注意的是,这个动画播放默认是循环播放的,如果不做特殊处理动画会一直播放)QMovie*movie=newQMovie(“aaa.gif”);ui->movieLabel->setMovie(movie);movie->start(); //启动gif图片//movie->stop(); /…

    2022年6月29日
    35
  • ArcGIS二次开发基础教程(10):三维分析

    ArcGIS二次开发基础教程(10):三维分析ArcGIS二次开发基础教程(10):三维分析坡度分析请务必学会使用帮助文档!!!//DEM数据的坡度分析将分析结果添加到地图上//首先获取DEM数据,方法有很多例如从个人地理数据库获取,也可直接获取文件数据,此处采用第二种方法IWorkspaceFactoryworkspaceFactory=newShapefileWorkspaceFactoryClass();//从文件…

    2022年7月23日
    12
  • 在 Word 中插入域代码并设置域代码的格式(转)「建议收藏」

    在 Word 中插入域代码并设置域代码的格式(转)「建议收藏」MicrosoftOfficeWord中的域用作文档中可能会改变的数据的占位符,并用于在邮件合并文档中创建套用信函和标签。这些种类的域也称为域代码,它们不同于那些用于输入信息的域类型,如在表单上。有关向文档中添加表单域的信息,请参阅创建打印表单、创建用户在Word中填写的表单或在Word中制作核对清单使用特定命令时(如插入页码时、插入封面等文档构建基块时或创建目录时),…

    2022年5月1日
    950
  • python suds_python使用suds调用webservice接口的方法

    python suds_python使用suds调用webservice接口的方法最近做接口对接 遇到了 net 开发的 webservice 接口 因为 python 第一次与 webservice 对接 连问带查 最后使用 suds 库来实现了 1 安装 sudsmac sudopipinsta easy installsuds 也可以通过去官网下载 suds 代码 再本地安装 2 引用初始化 gt gt gt fromsuds clientimport

    2026年3月16日
    2
  • QueryInterface详解 COM

    QueryInterface详解 COMQueryInterface接口查询IUnknown:      所有的COM接口均需要继承IUnknown接口。因此,若某个用户拥有一个IUnknown接口指针,它并不需要知道它所拥有的接口指针到底是什么类型的,而只需要通过此接口就可以用来查询其他接口就行了。      由于所有的COM接口都继承了IUnknown,每个接口的vbtl的前三项都是QueryInterface,A

    2022年6月29日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号