基于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java数组的声明_Java数组定义常用方法[通俗易懂]

    java数组的声明_Java数组定义常用方法[通俗易懂]Java数组定义常用方法Java中的数组、是一种简单的线性数据存储结构、他用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。Java中的数组有什么类型?我们要怎么定义这些数组呢?下面跟yjbys小编一起来学习Java数组定义常用方法吧!java中有两种数据类型:a)引用类型b)基础类型其中基础类型又有两种:b1)数值类型b2)及布尔类型。数组——也为java的一个数据类型、归类为引用…

    2022年6月2日
    46
  • 一句话讲清楚什么是JavaEE「建议收藏」

    一句话讲清楚什么是JavaEE「建议收藏」Java技术不仅是一门编程语言而且是一个平台。同时Java语言是一门有着特定语法和风格的高级的面向对象的语言,Java平台是Java语言编写的特定应用程序运行的环境。Java平台有很多种,很多的Jav

    2022年8月3日
    6
  • btc矿池接入矿机_ipfs挖矿服务器

    btc矿池接入矿机_ipfs挖矿服务器源码介绍基于ThinkPHP框架开发的BTB矿池区块链挖矿云矿机平台PHP源码,支持在线购买矿机进行区块挖矿,支持分销发展线下获取相应的佣金。后台采用ThinkPHP+ACE框架进行开发的手机WAP端区块链挖矿平台源码,拥有完善的权限控制机制,功能完善!!功能介绍①注册实名认证赠送矿机,可后台自己调整②赠送矿池资产,可每日释放,可调整大量排队等待买入的订单推广奖励制度:一级矿工:直推10人,团队3…

    2022年9月1日
    2
  • clion永久激活码[免费获取]

    (clion永久激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月22日
    409
  • java中位运算和移位运算详解[通俗易懂]

    java中位运算和移位运算详解[通俗易懂] 一、位运算(1)按位与&如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0。首先我们看一下对正数的运算  &nbs

    2022年7月4日
    23
  • FreeLink开源呼叫中心设计思想

    FreeLink开源呼叫中心设计思想

    2022年1月24日
    42

发表回复

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

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