Python实现简易记账脚本:存取款逻辑与数据持久化示例
本文介绍如何使用Python编写一个简易的记账脚本,实现存取款记录与余额计算功能。通过pickle模块进行数据持久化存储,结合时间戳生成账单,支持保存、支出、查询及退出操作。代码包含异常处理机制,确保输入合法性与程序稳定性,适合初学者学习文件IO与基础逻辑控制。
Python简易记账脚本概述
Python简易记账脚本示例
假设初始账户余额为10000元,在商场消费后资金不足,随后向父母借款5000元。以下是该场景下的账单记录示例。

脚本代码实现与逻辑解析
以下Python脚本代码可实现上述记账逻辑。
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')
对比上述表格数据,脚本运行结果与手动计算结果一致。

总结
总结
至此,关于Python编写简易记账脚本的示例代码介绍完毕。如需了解更多相关Python记账脚本内容,建议查阅本站历史文章或继续浏览后续教程,感谢支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













