zoukankan      html  css  js  c++  java
  • 20190226-利用序列化完成小型记账程序

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

    算法:

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

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

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

    注意点:

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

    #小练习:写一个记账程序,每天收入多少,支出多少,总额剩多少,使用序列化方式保存信息
    def tally(file):
        import pickle
        fp = open(file,'rb')
        try:
            income = pickle.load(fp)
            spend = pickle.load(fp)
            deposit = pickle.load(fp)
        except:
            income =[]
            spend =[]
            deposit = 0
        fp.close()   
    #读取序列化文件,获取历史income,spend,deposit  
    #value|specification
        while 1:
            content = input('请输入指令:')
            if content.find('exit')!=-1:
                break
                #没有找到exit
            if content.find('|')==-1:
                print('data format is value|specification')
                continue
            value = 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+=value
        fp = 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')
  • 相关阅读:
    nginx--gunicorn 部署Web服务
    Hexo 搭建博客真的太简单了
    nohup 和 &
    Nginx 服务器搭建
    Django3 的服务器搭建
    Mongo 服务器的安装
    Ubuntu16.04 安装tesseract
    phantomjs 的安装
    JsonPath python
    CSS 选择器:BeautifulSoup4
  • 原文地址:https://www.cnblogs.com/hyj691001/p/10434999.html
Copyright © 2011-2022 走看看