Python 出入库管理系统入门学习 1.0

在工作中,经常会需要对出入库数据进行管理,网上有许多案例,大多复杂难懂,今天笔者试着用 python 编写了一段简单的小程序,希望能对 python 的入门学习起到很好的借鉴作用。

一、整体思路

1、录入入库数据

2、录入出库数据

3、显示库存数据

4、对数据进行增、删、改、查

二、效果如下

1、功能菜单

2、录入入库数据

3、查询入库信息

4、录入出库信息

5、查询出库明细

6、显示库存信息

其他功能不再一一演示。

三、代码如下:

def initial():
    try:
        with open("warehouse_list.txt", "r+") as f:
            for product in f.readlines():
                warehouse_list.append(eval(product))
        print("read warehouse_list information successfully")
    except Exception as e:
        print(e)
        with open("warehouse_list.txt", "w+") as f:
            for product in f.readlines():
                warehouse_list.append(eval(product))
        print("rewrite warehouse_list file successfully")
    with open("stockIn_sum.txt", "r+") as f:
        for product in f.readlines():
            stockIn_sum.append(eval(product))
    print("read stockIn_sum file information successfully")
    with open("delivery_list.txt", "r+") as f:
        for product in f.readlines():
            delivery_list.append(eval(product))
    print("read delivery_list information successfully")

    with open("stockOut_sum.txt", "r+") as f:
        for product in f.readlines():
            stockOut_sum.append(eval(product))
    print("read stockOut_sum file information successfully")


def stock_in(lists1):
    print('商品录入')
    date = datetime.date.today()
    product_name = str(input('请输入商品名称:'))
    description = str(input('请输入商品描述:'))
    price = float(input('请输入商品单价:'))
    qty = int(input('请输入商品数量:'))
    amount = float(price) * qty
    s1 = {'date': date.isoformat(), 'product': product_name, 'description': description, 'price': price, 'qty': qty,
          'amount': amount}
    list_in.append(s1)
    write_to_warehouse_list(list_in)
    for li in lists1:
        if li['product'] == product_name and li['description'] == description:
            if price:
                li['price'] = float(price)
            if qty:
                li['qty'] += qty
                li['amount'] = li['qty'] * li['price']
            break
    else:
        s = {'date': date.isoformat(), 'product': product_name, 'description': description, 'price': price, 'qty': qty,
             'amount': amount}
        lists1.append(s)
    write_to_stockIn_sum(lists1)


def write_to_warehouse_list(lists):
    try:
        with open("warehouse_list.txt", "r+") as ff:
            for li in lists:
                ff.write(str(li) + "
")
    except Exception as er:
        print(er)
        with open("warehouse_list.txt", "w+") as ff:
            for li in lists:
                ff.write(str(li) + "
")


def write_to_stockIn_sum(lists):
    try:
        with open("stockIn_sum.txt", "r+") as ff:
            for li in lists:
                ff.write(str(li) + "
")
    except Exception as er:
        print(er)
        with open("stockIn_sum.txt", "w+") as ff:
            for li in lists:
                ff.write(str(li) + "
")


def write_to_delivery_list(lists):
    try:
        with open("delivery_list.txt", "r+") as ff:
            for li in lists:
                ff.write(str(li) + "
")
    except Exception as er:
        print(er)
        with open("delivery_list.txt", "w+") as ff:
            for li in lists:
                ff.write(str(li) + "
")


def write_to_stockOut_sum(lists):
    try:
        with open("stockOut_sum.txt", "r+") as ff:
            for li in lists:
                ff.write(str(li) + "
")
    except Exception as er:
        print(er)
        with open("stockOut_sum.txt", "w+") as ff:
            for li in lists:
                ff.write(str(li) + "
")


def display_stockIn_info(lists):  # 显示商品入库信息
    print('全部商品入库信息')
    print(f'{"date":<30}{"product":<10}{"description":<20}{"price":<10}{"qty":<10}{"amount":<10}')
    for li in lists:
        print(f'{li["date"]:<30}{li["product"]:<10}{li["description"]:<20}{li["price"]:<10}{li["qty"]:<10}'
              f'{li["amount"]:<10}')


def display_stockOut_info(lists):  # 显示商品出库信息
    print('全部商品出库明细')
    print(f'{"date":<10}{"product":<10}{"description":<20}{"price":<10}{"qty":<10}{"amount":<10}')
    for li in lists:
        print(f'{li["date"]:<12}{li["product"]:<10}{li["description"]:<20}{li["price"]:<10}{li["qty"]:<10}'
              f'{li["amount"]:<30}')


def find(lists):
    print('查找商品')
    product_name = input('请输入你要查找的商品名称:')
    for li in lists:
        if product_name == li['product']:
            print(f'{"product":<10}{"description":<20}{"price":<10}{"qty":<10}{"amount":<10}')
            print(f'{li["product"]:<10}{li["description"]:<20}{li["price"]:<10}{li["qty"]:<10}{li["amount"]:<10}')
            break
    else:
        print('该商品不存在, 请检查商品名称是否正确!')


def delete(lists):
    print('删除商品信息')
    product_name = input('请输入你要删除商品名称:')
    for li in lists:
        if product_name == li['product']:
            lists.remove(li)
            break
    else:
        print('该商品不存在, 请检查商品名称是否正确!')
    write_to_warehouse_list(lists)
    print("Delete successfully")


def modify(lists):
    print('修改商品信息')
    product_name = input('请输入你要修改的商品名称:')
    for li in lists:
        if product_name == li['product']:
            print('(如果不想修改,直接回车!)')
            product_name = input('请重新输入商品名称:')
            description = str(input('请输入商品描述:'))
            price = input('请重新输入商品价格:')
            qty = input('请重新输入商品数量:')
            if product_name:
                li['product'] = str(product_name)
            if description:
                li['description'] = str(description)
            if price:
                li['price'] = float(price)
            if qty:
                li['qty'] = int(qty)
                li['amount'] = li['price'] * li['qty']
            break
    else:
        print('该商品不存在, 请检查商品名称是否正确!')
    write_to_warehouse_list(lists)
    print('modify successfully')


def stock_out(lists):
    print('商品出库')
    date = datetime.date.today()
    product_name = input('请输入出库的商品名称:')
    description = str(input('请输入商品描述:'))
    price = float(input('请输入商品单价:'))
    qty = int(input('请输入商品数量:'))
    amount = float(price) * qty
    s2 = {'date': date.isoformat(), 'product': product_name, 'description': description, 'price': price, 'qty': qty,
          'amount': amount}
    list_out.append(s2)
    write_to_delivery_list(list_out)
    for li in lists:
        if product_name == li['product'] and li['description'] == description:
            if price:
                li['price'] = float(price)
            if qty:
                li['qty'] += qty
                li['amount'] = li['qty'] * li['price']
            break
    else:
        s = {'date': date.isoformat(), 'product': product_name, 'description': description, 'price': price, 'qty': qty,
             'amount': amount}
        lists.append(s)
    write_to_stockOut_sum(lists)


def stock(in_sum, out_sum):
    left = []
    for sin in in_sum:
        for sout in out_sum:
            if sin['product'] == sout['product'] and sin['description'] == sout['description']:
                product = sin['product']
                description = sin['description']
                price = sin['price']
                in_qty = sin['qty']
                out_qty = sout['qty']
                qty = sin['qty']-sout['qty']
                amount = price*qty
                s3 = {'product': product, 'description': description, 'price': price, 'in_qty': in_qty,
                      'out_qty': out_qty, 'qty': qty, 'amount': amount}
                left.append(s3)
    print("商品库存信息")
    print(f'{"product":<10}{"description":<20}{"price":<10}{"in_qty":<10}{"out_qty":<10}{"qty":<10}{"amount":<10}')
    for ls in left:
        print(f'{ls["product"]:<10}{ls["description"]:<20}{ls["price"]:<10}{ls["in_qty"]:<10}{ls["out_qty"]:<10}'
              f'{ls["qty"]:<10}{ls["amount"]:<10}')


if __name__ == "__main__":
    import datetime
    info = """
                    【欢迎使用商品信息管理系统 1.0】
                    
        *****************************************************
        
                        q. 退出商品信息管理系统
                        1. 查看商品入库信息
                        2. 查看商品出库信息                         
                        3. 新增商品入库 
                        4. 新增商品出库
                        5. 删除商品信息
                        6. 修改商品信息
                        7. 查找商品信息
                        8. 显示入库明细
                        9. 显示出库明细
                        10. 显示商品库存
                        
        ******************************************************"""
    warehouse_list = []
    stockIn_sum = []
    delivery_list = []
    stockOut_sum = []
    list_in = []
    list_out = []
    initial()  # 初始化文件
    while True:
        print(info)
        handle = input('请选择操作项目:')
        if handle == 'q':
            print('q. 退出系统')
            break
        elif handle == '1':
            display_stockIn_info(stockIn_sum)
        elif handle == '2':
            display_stockOut_info(stockOut_sum)
        elif handle == '3':
            stock_in(warehouse_list)
        elif handle == '4':
            stock_out(delivery_list)
        elif handle == '5':
            delete(warehouse_list)
        elif handle == '6':
            modify(warehouse_list)
        elif handle == '7':
            find(warehouse_list)
        elif handle == '8':
            display_stockIn_info(warehouse_list)
        elif handle == '9':
            display_stockOut_info(delivery_list)
        elif handle == '10':
            stock(stockIn_sum, stockOut_sum)
        else:
            print('Input error!,请重新输入正确的操作项目!')


展开阅读全文

页面更新:2024-04-03

标签:商品名称   明细   商品信息   单价   库存   入门   数量   操作   商品   数据   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top