打卡小程序

每天有五项需要学习。策略:如果未完成则成长值减一,完成则加一。
注意(NB):我们将每次计算后的成长值保存到了data.txt文件中,所以程序首次运行时会在目录下自动创建一个data.txt文件,但是要注意一定不要手动提前创建,因为当手动创建时,文件内部本身不存在可读数据,就会报错,这里算是一个不完整的小bug,可自行在__init__(self)函数下加一个if判断语句即可,这里省略。
运行方法:保证目录文件下没有名称为data.txt的文件直接运行程序即可。
代码如下:

import os


class Supervise:
    """
    This program is aiming at supervising myself
    """
    def __init__(self): 
        """
        str for strength
        hel for health
        ger for German
        eng for English
        aca for academy
        """
        print('Today is 22.04.2019, I have made a decision to create an updating system.' )
        # initialize correspondng variables
        if not os.path.exists("C:/Users/15025/Desktop/data.txt"):
            self.str = 0
            self.hel = 0  
            self.ger = 0 
            self.eng = 0 
            self.aca = 0 
        else:
            with open("C:/Users/15025/Desktop/data.txt", 'r') as f:
                data_list = f.readlines()
                new_data_list = []
                for data in data_list:
                    new_data_list.append(int(data.rstrip()))
                self.str = new_data_list[0]
                self.hel = new_data_list[1] 
                self.ger = new_data_list[2] 
                self.eng = new_data_list[3]
                self.aca = new_data_list[4]
        
    def mainSystem(self):  
        self.updateData()
        self.displayData()
        self.saveData()
       
        
    def updateData(self):
        answer_list = ['Y', 'y', 'Yes', 'yes']
        ans = input('Did you do exercise today?')
        if ans in answer_list :
            self.str += 1
        else:
            self.str -= 1
        ans = input('How about your food?')
        if ans in answer_list:
            self.hel+= 1
        else:
            self.hel -= 1
        ans =  input('Have you learned German?')
        if ans in answer_list:
            self.ger+= 1
        else:
            self.ger -= 1
        ans =  input('Have you learned English?')
        if ans in answer_list:
            self.eng+= 1
        else:
            self.eng -= 1
        ans =  input('Have you read reference books?')
        if ans in answer_list:
            self.aca+= 1
        else:
            self.aca -= 1
        pass
    
    
    def displayData(self):
        print('-'*18+'Current Data ' + '-' * 18)
        print('Strength:'.ljust(20)+ '|'+'{0}'.format(self.str).rjust(28))
        print('Healthy:'.ljust(20)+'|'+'{0}'.format(self.hel).rjust(28))
        print('German Skills:'.ljust(20)+'|'+'{0}'.format(self.ger).rjust(28))
        print('English Skills:'.ljust(20)+'|'+'{0}'.format(self.eng).rjust(28))
        print('Academic Skills:'.ljust(20)+'|'+'{0}'.format(self.aca).rjust(28))


    def saveData(self):
        """
        Here we just save the data according to the order and leave out other uncessary part.
        """
        with open("C:/Users/15025/Desktop/data.txt", "w+") as f:
            f.write(str(self.str) + '\n')
            f.write(str(self.hel) + '\n')
            f.write(str(self.ger) + '\n')
            f.write(str(self.eng) + '\n')
            f.write(str(self.aca) + '\n')
            
    
main = Supervise()
main.mainSystem()

猜你喜欢

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