写一个记账程序,每天收入多少,支出多少,总额剩多少,使用序列化方式保存信息

算法:

  1.读取输入格式为 value|classify,其中value整数表示收入,负数表示支出

  2.income列表存取收入,spend列表存取支出,deposit存取余额,每次调用函数的时候先获取历史income和spend和deposdit

  3.数据处理完成后income,spend,deposit需要存入序列化中以便下次使用

注意点:

  序列化需要顺序存储和顺序使用,且需要以二进制的形式读写

#小练习:写一个记账程序,每天收入多少,支出多少,总额剩多少,使用序列化方式保存信息
def tally(file):import picklefp = open(file,'rb')try:income = pickle.load(fp)spend = pickle.load(fp)deposit = pickle.load(fp)except:income =[]spend =[]deposit = 0fp.close()
#读取序列化文件,获取历史income,spend,deposit
#value|specificationwhile 1:content = input('请输入指令:')if content.find('exit')!=-1:break#没有找到exitif content.find('|')==-1:print('data format is value|specification')continuevalue = content.split('|')[0]specification = content.split('|')[1]
#接受用户输入,进行输入格式检查try:value = float(value)except:print('data format is value must be a num')if value > 0 :income.append(content)elif value ==0:print('空间有限不存0')else:spend.append(content[1:])deposit+=valuefp = open(file,'wb')pickle.dump(income,fp)pickle.dump(spend,fp)pickle.dump(deposit,fp)fp.close()
#数据处理结束后存储序列化print(income)print(spend)print(deposit)
tally('deposit.txt')

转载于:https://www.cnblogs.com/hyj691001/p/10434999.html

20190226-利用序列化完成小型记账程序相关推荐

  1. 利用Console来调试JS程序、Console用法总结

    利用Console来调试JS程序.Console用法总结(1) 一 .什么是 Console Console 是用于显示 JS和 DOM 对象信息的单独窗口.并且向 JS 中注入1个 console ...

  2. 利用SqlHelper.cs实现Web程序对数据库的增、删、改等操作

    利用SqlHelper.cs实现Web程序对数据库的增.删.改等操作 (2006-08-22 00:50:05) 转载▼ 分类:技术杂谈 在SqlHelper.cs中,封装了所有和SQL数据库相关的操 ...

  3. 利用FRIDA攻击Android应用程序(三)

    利用FRIDA攻击Android应用程序(三) 前言 在我的有关frida的第二篇博客发布不久之后,@muellerberndt决定发布另一个OWASP Android crackme,我很想知道是否 ...

  4. java jmf 视屏监控的核心代码_Java中利用JMF编写摄像头拍照程序_java

    我把程序分为两种,有趣的和无趣的,最近做了几个有趣的项目,其中一个,应当就算是摄像头拍照程序了.用于现场拍照,生成照片,主要用到java Media Framework(JMF). 首先到SUN下载最 ...

  5. 基于cookies的小型购物车程序

    基于cookies的小型购物车程序 最近因为公司项目开发,需要一个购物车程序. 虽然网上很多,但个人很久前就想写个.于是马上动手. 代码有点多,感觉方法不怎么好! 随便post上来,高手可略过~! m ...

  6. python程序实例电话本-利用Python电话本小程序!这波操作你给几分?

    原标题:利用Python电话本小程序!这波操作你给几分? 最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. 2 ...

  7. ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约

    ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约 目录 1.Geth安装.配置文件.与ETH节点交互 1.1.下载并安装好geth客户端 1.2. ...

  8. 利用序列化进行文件读写

    文章标题:利用序列化进行文件读写 原 作 者:vchelp 原 出 处:vchelp 发 布 者:loose_went 发布类型:转载 发布日期:2006-09-05 今日/总浏览:1/4935 在很 ...

  9. 学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装

    在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘.可是,这两天,他又抱怨他的下载程序不好用,让我 ...

最新文章

  1. [推荐]Silverlight 2 开发者海报
  2. 计算机培训操作规程,电脑裁床操作规程
  3. [Android] 图像各种处理系列文章合集
  4. 使用Async对Angular异步代码进行单元测试
  5. 计算机技术应用广泛 属于科学计算方面的是,中国大学MOOC: 计算机技术应用广泛,以下属于科学计算方面的是哪个? 答案:火箭轨道计算...
  6. asp.net 安装element ui_不用上官网,自己部署一套Element官方最新文档
  7. java基础类的继承_JAVA核心技术I---JAVA基础知识(类的继承)
  8. 变量申明的提升,闭包,作用域,this,运算符优先级详细举例及讲解
  9. USACO / Mother's Milk (DFS)
  10. android intent 视频,Android通过发送Intent播放本地视频和网络视频
  11. java web项目开发流程_Java Web项目开发步骤
  12. 新CEO能使诺基亚起死回生吗?
  13. Android音视频——H.264帧码流(SODB、RBSP、EBSP)浅析
  14. Java网络编程——UDP编程
  15. linux0.11主存管理程序阅读注释笔记
  16. 2019 CSP-J 游记(CQ LNBS考场 的退役之战)
  17. osg 基本几何图元
  18. 读书笔记—别让情绪毁了你(插图精读本)
  19. 神经重症患者要防深静脉血栓形成
  20. WNDCLASS(WNDCLASSEX)结构介绍

热门文章

  1. 牛年前的一小结——打响本命年的第一枪,继续刷题!
  2. Ubuntu18彻底删除MySQL5.7数据库
  3. 2022-2028年中国自主可控行业深度调研及投资前景预测报告(全卷)
  4. 2022-2028年中国聚碳酸亚丙酯(PPC)行业市场深度分析及未来趋势预测报告
  5. 查看LINUX发行版的名称及其版本号
  6. c语言中struct和c++中class实例对比
  7. SpringCloud Alibaba微服务实战(三) - Nacos服务创建消费者(Feign)
  8. LeetCode简单题之学生出勤记录 I
  9. 如何将自定义代码生成TVM
  10. Hashing散列注意事项