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 相关文章推荐
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
Python pass详细介绍及实例代码
Nov 24 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
python docx 中文字体设置的操作方法
May 08 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
Feb 02 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
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
php操作mongoDB实例分析
2014/12/29 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
封装的原生javascript弹出层代码
2010/09/24 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
vue实现简易计算器功能
2021/01/20 Vue.js
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python用户管理系统
2018/03/13 Python
python 对象和json互相转换方法
2018/03/22 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
售后主管岗位职责
2013/12/08 职场文书
《恐龙》教学反思
2014/04/27 职场文书
党委班子对照检查材料
2014/08/19 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
礼貌问候语大全
2015/11/10 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server