基于speech模块的久坐提醒小程序

每天在电脑前坐很长的时间,因为有时候太过投入一下子就过去了若干个小时,容易猝死。于是心血来潮的想要写一个防久坐提醒小程序:
为了搞清楚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模块的使用方法

猜你喜欢

转载自blog.csdn.net/u011699626/article/details/108448427