linux怎么查看本机内存大小
242
2022-09-24
python之记账程序
from time import strftimeimport pickleimport os''':Function: print color string:Usage: cecho(31, "error")'''def cecho(num,content): print('\033[%sm%s\033[0m' %(num, content))#记录收入def save(fname): now_time = strftime('%Y-%m-%d') # 当前时间 with open(fname, 'rb') as fobj: records = pickle.load(fobj) old_balance = int(records[-1][-2]) # 上一次余额 try: money = int(input('收入(元): ')) content = input('收入说明: ') except ValueError as e: print('\033[31m输入错误:\033[0m', e) else: all_balance = old_balance + money #收入后的总余额 new_bill = [now_time, money, 0, all_balance, content] #新的账单 records.append(new_bill) with open(fname,'wb') as fobj: pickle.dump(records, fobj)# save_bill(records)# print(bill) color.cecho(34, '操作成功')#记录支出def cost(fname): now_time = strftime('%Y-%m-%d') # 当前时间 with open(fname, 'rb') as fobj: records = pickle.load(fobj) old_balance = int(records[-1][-2]) # 上一次余额 try: money = int(input('支出(元): ')) content = input('支出说明: ') except ValueError as e: print('\033[31m输入错误:\033[0m', e) else: all_balance = old_balance - money # 收入后的总余额 new_bill = [now_time, 0, money, all_balance, content] # 新的账单 records.append(new_bill) with open(fname, 'wb') as fobj: pickle.dump(records, fobj) # save_bill(records) # print(bill) color.cecho(34, '操作成功')#查看账单def query(fname): #打印表头 print('%-12s%-8s%-8s%-12s%-15s' % ('date', 'save', 'cost', 'balance', 'comment')) with open(fname, 'rb') as fobj: records = pickle.load(fobj) for i in records: print('%-12s%-8s%-8s%-12s%-15s' % tuple(i))#功能程序def show_menu(): cmds = {'0':save, '1':cost, '2':query} prompt = '''(0)收入(1)支出(2)查看(3)退出输入(0/1/2/3):''' # 初始化账单 bill = [['2019-07-07', 0, 0, 10000, 'init']] fname = '/tmp/record.data' # 存储账单的文件 if not os.path.exists(fname): with open(fname, 'wb') as f: pickle.dump(bill, f) while True: choice = input(prompt).strip() if choice not in '0123': print('输入错误,请重试') continue if choice == '3': color.cecho(36, '生不带来,死不带去,该花就花') break cmds[choice](fname) print('-' * 40)#####################################主程序#####################################if __name__ == '__main__': try: show_menu() except (ValueError, KeyboardInterrupt, EOFError,FileNotFoundError) as e: print('\033[31m输入有误:\033[0m', e)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~