首页 > 编程学习 > 用python 记账小程序_python 实例8 日常记账本小程序

实现收支的自动计算

能够查询每笔账款的消费详情

1、函数需要两个文件:一个类似钱包功能,存放钱;另一个用于记录每笔花销的用途

#!/usr/bin/env python

import cPickle as p

with open('wallet.data','w') as f:

p.dump(10000,f)

with open('record.txt','w') as f:

pass

2、功能实现

#!!/usr/bin/env python

#coding:utf8

import cPickle as p

import time

date = time.strftime('%Y%m%d')

def save_money():

sav_count=int(raw_input('save money: '))

sav_comment = raw_input('doing what: ')

with open('wallet.data') as f:

balance = p.load(f)

new_bal = balance + sav_count

with open('wallet.data','w') as f:

p.dump(new_bal,f)

content = '%-12s%-8s%-8s%-10s%-25s\n'%(date,'N/A',sav_count,new_bal,sav_comment)

with open('record.txt','a')as f:

f.write(content)

def spend_money():

spe_count=int(raw_input('spend money: '))

spe_comment = raw_input('doing what: ')

with open('wallet.data') as f:

balance = p.load(f)

new_bal = balance - spe_count

with open('wallet.data','w') as f:

p.dump(new_bal,f)

with open('record.txt','a')as f:

content = '%-12s%-8s%-8s%-10s%-25s\n'%(date,spe_count,'N/A',new_bal,spe_comment)

f.write(content)

def query_info():

line = '='*63

content = '%s\n%-12s%-8s%-8s%-10s%-25s'%(line,'Date','Cost','Save','Balance','Comment')

with open('wallet.data') as f:

new_bal = p.load(f)

print 'new balance: ',new_bal

print content

with open('record.txt') as f:

for line in f:

print line

def show_menu():

prompt = '''

'0':'spend_money'

'1':'save_money'

'2':'query_info'

'3':'quit'

'''

while True:

CMDs={'0':spend_money,'1':save_money,'2':query_info}

choice = raw_input('which do you want to do ?%s: '%prompt)

if choice not in '012':

break

CMDs[choice]()

if __name__=='__main__':

show_menu()

3、程序还有改进处,例如将两个文件以参数的形式传入,会简化代码


本文链接:https://www.ngui.cc/zz/1544532.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000