网络编程
位置:首页>> 网络编程>> Python编程>> python实现日常记账本小程序

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

0
投稿

猜你喜欢

  • 引言众所周知,在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
手机版 网络编程 asp之家 www.aspxhome.com