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入门篇之正则表达式
Oct 20 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
Python实现购物系统(示例讲解)
Sep 13 Python
python中装饰器级连的使用方法示例
Sep 29 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
python生成器推导式用法简单示例
Oct 08 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
python 模拟登录B站的示例代码
Dec 15 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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版)
2006/10/09 PHP
php 函数中使用static的说明
2012/06/01 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
教你用Python创建微信聊天机器人
2020/03/31 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
彪马日本官网:PUMA日本
2019/01/31 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
数组越界问题
2015/10/21 面试题
授权委托书格式模板
2014/04/03 职场文书
领导干部对照检查材料
2014/08/24 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
检讨书格式
2015/01/23 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
Nginx 常用配置
2022/05/15 Servers
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL