python实现日常记账本小程序


Posted in Python onMarch 10, 2018

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python:socket传输大文件示例
Jan 18 Python
Python3计算三角形的面积代码
Dec 18 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
Django Celery异步任务队列的实现
Jul 24 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
python 正则表达式参数替换实例详解
Jan 17 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
python读取文件指定行内容实例讲解
Mar 02 Python
Django权限设置及验证方式
May 13 Python
Python中request的基本使用解决乱码问题
Apr 12 Python
python实现简单神经网络算法
Mar 10 #Python
TensorFlow saver指定变量的存取
Mar 10 #Python
TensorFLow用Saver保存和恢复变量
Mar 10 #Python
tensorflow创建变量以及根据名称查找变量
Mar 10 #Python
Python2中文处理纪要的实现方法
Mar 10 #Python
python实现冒泡排序算法的两种方法
Mar 10 #Python
Python使用pyh生成HTML文档的方法示例
Mar 10 #Python
You might like
PHP define函数的使用说明
2008/08/27 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
php+mysql数据库查询实例
2015/01/21 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
详解JS面向对象编程
2016/01/24 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
python中readline判断文件读取结束的方法
2014/11/08 Python
Python去除列表中重复元素的方法
2015/03/20 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
python palywright库基本使用
2021/01/21 Python
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
.NET常见笔试题集
2012/12/01 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
师范生自我鉴定
2014/03/20 职场文书
就业意向书范文
2014/04/01 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
医德医风自我评价
2014/09/19 职场文书
家庭经济困难证明
2015/06/23 职场文书
导游带团欢迎词
2015/09/30 职场文书
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技
win10搭建配置ftp服务器的方法
2022/08/05 Servers