python编写一个会算账的脚本

  • Post author:
  • Post category:python


python算账脚本

1.假如小明卡里有10000元去商场买东西发现钱不够又向父母借了5000账单如下

日期(date) 存钱(save) 花钱(cost) 余额(balance) 描述信息(comment)
20200531 0 0 10000 int
20200531 0 1000 9000 eat
20200531 0 3000 6000 buy a computer
20200531 0 2000 4000 buy cloth
20200531 0 5000 -1000 buy a phone
20200531 5000 0 4000 borrow
20200531 0 1000 3000 play

2.以下脚本就能实现上面的运算

from time import strftime
import pickle
import os
try:
 def save():
    data = strftime('\033[35m%Y-%m-%d\033[0m')
    money = int(input('How much do you have to save?:'))
    comment = input('Which come of money?')
    with open('account.book','rb') as fname:
        list = pickle.load(fname)
        record = list[-1][-2]
        balance = record + money
        list.append([data,money,0,balance,comment])
        with open('account.book','wb') as fname:
           pickle.dump(list,fname)
 def cost():
  data = strftime('\033[35m%Y-%m-%d\033[0m')
  money = int(input('How much did you spend?:'))
  comment = input('Where is it used?:')
  with open('account.book','rb') as fname:
      list = pickle.load(fname)
      record = list[-1][-2]
      balance = record - money
      list.append([data,0,money,balance,comment])
      with open('account.book', 'wb') as fname:
          pickle.dump(list, fname)
 def query():
  print('\033[34m%-20s%-9s%-9s%-10s%-18s\033[0m' % ('date','save','cost','balance','comment'))
  with open('account.book','rb') as fname:
      record = pickle.load(fname)
      for i in record:
          print('%-29s%-9s%-9s%-10s%-20s' % tuple(i))
 def choice_memu():
    promat='''
    (0)save
    (1)cost
    (2)query
    (3)exit
    please choice:'''
    fname = 'account.book'
    if not os.path.exists(fname):
       with open(fname,'wb') as obj:
         t_t = strftime('\033[35m%Y-%m-%d\033[0m')
         data = [[t_t,0,0,10000,'int']]
         pickle.dump(data,obj)
    while 1:
        cmds = {'0':save,'1':cost,'2':query}
        choice = input(promat)
        if choice not in ['0','1','2','3']:
            continue
        if choice == '3':
            print('\033[32msee you\033[0m')
            break
        cmds[choice]()
 if __name__ == '__main__':
    choice_memu()
except KeyboardInterrupt:
    print('\033[32msee you\033[0m')
except ValueError:
    print('\033[31minvalid inputs\033[0m')

3.与上面的表格比较发现结果一样

在这里插入图片描述


欢迎大家观看我的视频教程:Python入门到进阶


在这里插入图片描述



版权声明:本文为m0_46183436原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。