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调用cmd复制文件代码分享
Dec 27 Python
Python递归函数定义与用法示例
Jun 02 Python
浅析python的Lambda表达式
Feb 27 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
如何使用Python发送HTML格式的邮件
Feb 11 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
matplotlib图例legend语法及设置的方法
Jul 28 Python
分享一个python的aes加密代码
Dec 22 Python
python - asyncio异步编程
Apr 06 Python
Python中字符串对象语法分享
Feb 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
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
treepanel动态加载数据实现代码
2012/12/15 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
int在python中的含义以及用法
2019/06/27 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
Python中的With语句的使用及原理
2020/07/29 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
应届生求职自荐信范文
2015/03/04 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers