微信小程序> python记账小程序(80)

python记账小程序(80)

浏览量:739 时间: 来源:liao__ran
# 转自https://www.jianshu.com/c/00c61372c46a网址#1,记账时手头有一万块钱#2,可以记录花的钱,存的钱,以及收支明细#wallet文件内存总的钱数,余额#record文件内存的是明细import pickleimport osimport timedef cost(wallet,record):    #记录花钱的函数    amount = int(input('amount: ')) #输入数字    comment = input('comment: ')    #输入    date = time.strftime('%Y-%m-%d')    with open(wallet,'rb') as fobj: #从文件取总值减去amount        balance = pickle.load(fobj) - amount    with open(wallet,'wb') as fobj:        pickle.dump(balance,fobj)   #将上面得到的值再写入文件内    with open(record,'a') as fobj:  #向record对应文件内追加各种信息        fobj.write(            '%-15s%-8s%-8s%-8s%-20s' % (date,'',amount,balance,comment)        )def save(wallet,record):    #记录存钱的函数    amount = int(input('amount: '))    comment = input('comment: ')    date = time.strftime('%Y-%m-%d')    with open(wallet,'rb') as fobj:        balance = pickle.load(fobj) + amount    with open(wallet,'wb') as fobj:        pickle.dump(balance,fobj)    with open(record,'a') as fobj:        fobj.write(            '%-15s%-8s%-8s%-8s%-20s' % (date,amount,'',balance,comment)        )def query(wallet,record):   #查询收支明细的函数    print('%-15s%-8s%-8s%-8s%-20s' % ('date','save','cost','balance','comment'))    with open(record) as fobj:  #输出明细        for line in fobj:            print(line,end='')    with open(wallet,'rb') as fobj: #输出余额        balance = pickle.load(fobj)        print("Latest Balance: %d" % balance)def show_menu():    cmds = {'0':save,'1':cost,'2':query}    prompt = """(0) save(1) cost(2) query(3) exitPlease input your choice(0/1/2/3): """    wallet = '/tmp/1wallet.data'    record = '/tmp/1record.txt'    if not os.path.exists(wallet):        with open(wallet,'wb') as fobj: #如果/tmp/wallet.data不存在,则创建并写入数据10000            pickle.dump(10000,fobj)    while True:        try:            choice = input(prompt).strip()[0]   #去除空格,选取第一个数字        except ImportError:            continue        except (KeyboardInterrupt,EOFError):            print()            choice == '3'        if choice not in '0123':            print('Invalid input. Try again.')            continue        if choice == '3':            break        cmds[choice](wallet,record) #根据cmds字典和choice选择运行上面定义的函数即查询,花钱,存钱if __name__ == '__main__':    show_menu()

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎