python实现日常记账本小程序

作者:shougaogao2011 时间:2023-09-06 18:00:49 

python实现收支的自动计算,能够查询每笔账款的消费详情,具体内容如下

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、程序还有改进处,例如将两个文件以参数的形式传入,会简化代码。

来源:http://blog.csdn.net/shougaogao2011/article/details/50498712

标签:python,记账本,小程序
0
投稿

猜你喜欢

  • 基于Python2、Python3中reload()的不同用法介绍

    2023-10-01 17:59:15
  • Pytorch 扩展Tensor维度、压缩Tensor维度的方法

    2022-05-29 03:35:32
  • TensorFlow安装及jupyter notebook配置方法

    2022-09-11 01:05:23
  • python基于C/S模式实现聊天室功能

    2021-05-01 04:17:53
  • Python反向传播实现线性回归步骤详细讲解

    2021-06-04 10:20:03
  • python小技巧之批量抓取美女图片

    2022-09-16 17:25:58
  • 置信椭圆原理以及椭圆图形绘制方式

    2021-04-24 04:25:04
  • 详解Google Protobuf简明教程

    2023-08-17 14:47:28
  • 这么多的 Oracle 性能工具

    2008-06-04 11:20:00
  • 六种php加密解密方法实例讲解

    2023-07-01 12:16:02
  • opencv形态学中的孔洞填充详细图解

    2021-08-14 00:44:10
  • Python使用try except处理程序异常的三种常用方法分析

    2021-12-25 22:51:24
  • SQL Server 数据库备份和还原认识和总结(二)

    2012-10-07 10:52:52
  • python使用MQTT给硬件传输图片的实现方法

    2022-02-09 21:55:59
  • 解析SQL Server中datetimeset转换datetime类型问题

    2024-01-15 13:22:34
  • python opencv对图像进行旋转且不裁剪图片的实现方法

    2023-03-12 02:40:09
  • asp下通过HTTP_USER_AGENT判断用户是从手机上访问,还是电脑IE上访问

    2011-02-24 11:00:00
  • Pycharm使用时会出现的问题之cv2无法安装解决

    2022-12-26 06:24:49
  • python抓取需要扫微信登陆页面

    2022-03-01 16:15:32
  • js实现炫酷的左右轮播图

    2024-04-22 22:31:40
  • asp之家 网络编程 m.aspxhome.com