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 版权协议,转载请附上原文出处链接和本声明。