每天有五项需要学习。策略:如果未完成则成长值减一,完成则加一。
注意(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()
如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~