python实现日常记账本小程序
作者:shougaogao2011 发布时间:2023-09-06 18:00:49
标签:python,记账本,小程序
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、程序还有改进处,例如将两个文件以参数的形式传入,会简化代码。
来源:http://blog.csdn.net/shougaogao2011/article/details/50498712


猜你喜欢
- 引言众所周知,在python中我们用try…except…来捕获异常,使用raise来抛出异常,
- 哎~工作忙死了!!!!!!今天在百度老年看到一个手写输入法,颇感新鲜。so把其框下!请不要用在商业用途,学习之用,版权百度所有。看代码!注:
- 一、前言近期在实际项目中使用到了PID控制算法,于是就该算法做一总结。二、PID控制算法详解2.1 比例控制算法例子: 假设一个水缸,需要最
- 前言:分区是一种表的设计模式,正确的分区可以极大地提升数据库的查询效率,完成更高质量的SQL编程。但是如果错误地使用分区,那么分区可能带来毁
- [本站原创]在我们浏览了一些网页时,经常会弹出一些信息窗口或浏览器窗口以显示一些公告内容,想知道这些窗口是怎么制作出来的吗?如果你还不曾知道
- 古巴比伦王颁布了汉摩拉比法典,刻在黑色的玄武岩,距今已经三千七百多年,你在橱窗前…熟悉吧?没错,这就是周董的爱在西元前歌词。前不久工作不是很
- 报错代码粉丝群一个小伙伴想pandas创建DataFrame对象,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决
- 目录1、前言2、递归3、回调函数3.1匿名回调函数3.2带参数的回调函数3.3回调函数的优缺点4、自调函数5、为值的函数6、闭包1、前言在J
- 轮廓概述轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。 
- 一、python代码实现及turtle库简单介绍桌面时钟项目描述1、使用turtle库绘制时钟外形及表针;2、使用datetime获取系统时
- mysql drop database命令用于删除一个数据库,如果试图使用drop database命令删除一个不存在的数据库,那么那么你会
- 如下所示:list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list
- 在网上搜过发现关于keras下的模型融合框架其实很简单,奈何网上说了一大堆,这个东西官方文档上就有,自己写了个demo:# Function
- 原始生成对抗网络Generative Adversarial Networks GAN包含生成器Generator和判别器Discrimin
- 常规循环引用内存泄漏和Closure内存泄漏 要了解javascript的内存泄漏问题,首先要了解的就是javascript的GC原理。我记
- 任务队列主线程:正在执行的代码,会生成函数调用栈。macro-task(宏任务,新名:task)包括:script(整体代码), setTi
- 很早就听说韩国网站的设计师们很会利用空间,来创造更多的信息承载量.最近浏览了几个韩国SHOPPING网站果不其然,就拿小小的广告轮播来说,非
- 假设有一个可迭代对象,现在想要对它内部的元素进行排序,我们一般会使用内置函数 sorted,举个例子:data = (3
- 第一种import win32clipboardimport time#速度快 容易出错class niubi(): def l
- JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。全局变量函数可以访问是有函数内部定义的变量,如:实例functio