记录物品

2022-07-25,

一、前言

今天牙膏用完了,去买牙膏时突然想到我2020年用了多少支牙膏呢。
于是就做了记录物品这个程序,帮我记录2021年各个物品都使用了多少。
这个程序可以帮你记录一段时间内使用了多少文具,买了多少衣服。或者像这种听了几首陈奕迅的歌,听了几首李克勤的歌,只要是可以累计数量的,他都可以帮你完成
代码在下面,感兴趣的可以直接复制下来,复制到python直接就可以用。

二、代码

复制之后运行时先初始化,保证程序可以记录数据。
建立的.b.d的文档一定不能删除,它们就是用来记录数据的

def 初始化():
    print('您确定要初始化吗?')
    print('初始化会导致之前记录的数据丢失')
    from time import sleep as slp
    while True:
        slp(0.2)
        print('请输入是或否')
        a = input()
        if a == '是':
            def 确认初始化():
                print('开始初始化', end='')
                from shelve import open as oop
                fa = oop(r'记录data')
                fa['物品字典'] = {}
                fa['物品列表'] = []
                fa['物品数量'] = 0
                fa.close()
                for i in range(3):
                    slp(0.2)
                    print('.', end='')
                print('\n初始化成功\n')
                slp(0.2)
                print('是否现在填写物品使用情况')
                print('输入是或否')
                a = input()
                if a == '是':
                    批量记录()
            slp(0.2)
            确认初始化()
            break
        elif a == '否':
            break


# 初始化程序


def 执行():
    while True:
        print('''0.初始化
1.记录
2.批量记录
3.查看使用情况
您想执行什么?''')
        a = input()
        if a == '0':
            初始化()
        elif a == '1':
            记录()
            break
        elif a == '2':
            批量记录()
            break
        elif a == '3':
            查看使用情况()
        elif a == 'q' or a == 'Q':
            break
        else:
            print('没有这个选择')
            print('退出请按Q')


def 记录():
    print('物品:')
    a = input()
    from shelve import open as oop
    fa = oop('记录data')
    if a not in fa['物品列表']:
        b = fa['物品列表']
        b.append(a)
        fa['物品列表'] = b
        b = fa['物品字典']
        b[a] = 1
        fa['物品字典'] = b
        b = fa['物品数量']
        b += 1
        fa['物品数量'] = b
    fa.close()
    print('记录完毕,{}使用量加1'.format(a))


def 批量记录():
    from time import sleep as slp
    print('开始批量记录')
    slp(0.2)
    while True:
        print('物品:')
        a = input()
        if a != 'q' or a == 'Q':
            print('数量')
            c = int(input())
            from shelve import open as oop
            fa = oop('记录data')
            if a not in fa['物品列表']:
                b = fa['物品列表']
                b.append(a)
                fa['物品列表'] = b
                b = fa['物品字典']
                b[a] = c
                fa['物品字典'] = b
                b = fa['物品数量']
                b += 1
                fa['物品数量'] = b
            fa.close()
            print('记录成功,{}使用量加{}'.format(a, c))
            print('按Q退出')
        else:
            break


def 查看使用情况():
    print('''按A查看全部
按L查看物品列表
按Q退出''')
    from shelve import open as oop
    fa = oop('记录data')
    while True:
        print('请输入物品名称:')
        a = input()
        if a == 'a' or a == 'A':
            b = fa['物品字典']
            for i, n in zip(b.keys(), b.values()):
                print('{}:\t\t{}'.format(i, n))
        elif a == 'l' or a == 'L':
            b = fa['物品列表']
            for i, n in zip(b, range(len(b))):
                print('{:10}'.format(i), end='\t')
                if (n + 1) % 5 == 0:
                    print('\n')
            print('\n')
        elif a == 'q' or a == 'Q':
            break
        elif a in fa['物品列表']:
            b = fa['物品字典']
            print('{}\t\t{}'.format(a, b.get(a)))
        else:
            print('您的物品清单中没有{}'.format(a))
    fa.close()


执行()

三、运行效果

0.初始化
1.记录
2.批量记录
3.查看使用情况
您想执行什么?
0
您确定要初始化吗?
初始化会导致之前记录的数据丢失
请输入是或否
是
开始初始化...
初始化成功

是否现在填写物品使用情况
输入是或否
是
开始批量记录
物品:
牙膏
数量
1
记录成功,牙膏使用量加1
按Q退出
物品:
铅笔
数量
25
记录成功,铅笔使用量加25
按Q退出
物品:
中性笔
数量
5
记录成功,中性笔使用量加5
按Q退出
物品:
q
0.初始化
1.记录
2.批量记录
3.查看使用情况
您想执行什么?
3
按A查看全部
按L查看物品列表
按Q退出
请输入物品名称:
铅笔
铅笔		25
请输入物品名称:
a
牙膏:		1
铅笔:		25
中性笔:		5
请输入物品名称:
q
0.初始化
1.记录
2.批量记录
3.查看使用情况
您想执行什么?
q

本文地址:https://blog.csdn.net/m0_46281622/article/details/111992166

《记录物品.doc》

下载本文的Word格式文档,以方便收藏与打印。