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 网络设备巡检脚本的实例讲解
Apr 22 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
python3实现表白神器
Apr 09 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
Python面向对象之内置函数相关知识总结
Jun 24 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强制下载PDF文件示例
2014/01/17 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
js 函数的副作用分析
2011/08/23 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
JavaScript事件处理程序详解
2017/09/19 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
Python算法应用实战之队列详解
2017/02/04 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
Python输出各行命令详解
2018/02/01 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
Python绘制数码晶体管日期
2021/02/19 Python
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
十岁生日家长答谢词
2014/01/17 职场文书
模范教师事迹材料
2014/02/10 职场文书
《我的第一本书》教学反思
2014/02/15 职场文书
话题作文之诚信
2019/11/28 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL