首页 » Python » 字典列表的综合使用

字典列表的综合使用

原文 http://blog.csdn.net/sxc1414749109/article/details/79221187

2018-02-01 02:00:56阅读(688)

'''
手机销售系统
    手机品牌    手机价格    库存数量
     vivoX9            2798       25
     iphone7(32G)      4888       31
     iphone7(128G)     5668       22
     iphone7P(128G)    6616       29
     iphone6(16G)      3858       14
     ....
功能要求:
    四个选项:
        1.查看所有手机品牌
            1.vivoX9
            2.iphone7(32G)
            ......
                分支选项:
                1.选择产品序号查看详情(根据序号输出产品名称,价格,库存)
                    1.购买(库存数量-1,库存为0时,删除该产品)
                    2.返回
                2.返回
        2.更改产品库存信息
            1.添加新产品(添加新产品,包括产品名称、价格、库存)
            2.修改原有产品
              输出所有产品信息(将产品的名称  价格  库存)
              1.根据选择序号进行修改
              2.返回
        3.移除产品库存信息
            1.查看所有产品,根据序号移除
            2.移除所有产品
            3.返回
        4.退出程序
'''
# 查看手机信息的函数
def query_phone(type):
    '''
    :param type: 查询时,输出的类型 1.输出详细信息(名称,价格,库存) 2.输出产品名称
    '''
    for x in range(0, len(phone_list)):
        # 根据索引取出手机信息字典
        phone = phone_list[x]
        name = phone['name']
        # 判断输出的类型
        if type == 1:
            price = phone['price']
            count = phone['count']
            # 输出详细信息
            print('序号:%s  产品名称:%s  产品价格:%s  产品库存:%s'%(x, name, price, count))
        else:
            print('序号:%s  产品名称:%s'%(x, name))
# 购买手机的函数
def buy_phone():
    if len(phone_list) <= 0:
        print('当前无商品信息!')
        return
    print('1.选择序号查看手机详情:')
    print('2.返回')
    num = int(input('请选择您的操作:'))
    while num not in range(1, 3):
        num = int(input('选项有误,请重选:'))
    if num == 1:
        # 输入选择产品序号
        index = int(input('请输入查看的产品序号:'))
        while index not in range(0, len(phone_list)):
            index = int(input('序号有误,请重选:'))
        # 根据index的值,取出小字典
        phone = phone_list[index]
        # 输出产品序号、名称、价格、库存
        print('序号:%s  产品名称:%s  产品价格:%s  产品库存:%s'%(index,phone['name'],phone['price'],phone['count']))
        # 是否购买
        print('1.购买')
        print('2.返回')
        num = int(input('请选择:'))
        while num not in range(1, 3):
            num = int(input('选择错误,请重选:'))
        if num == 1:
            count = phone['count']
            count = count - 1
            if count == 0:
                # 手机卖完了
                print('%s 已售罄,请及时补货!'%phone['name'])
                phone_list.remove(phone)
            else:
                # 更改库存量
                phone['count'] = count
                return
    else:
        return
# 更改产品信息
def update_phone():
    print('1.添加新产品')
    print('2.修改原有产品')
    print('3.返回')
    num = int(input('请选择您的操作:'))
    while num not in range(1, 4):
        num = int(input('选项错误,请重选'))
    if num == 1:
        # 包括产品名称、价格、库存
        name = input('请输入添加的产品名称:')
        price = input('请输入添加的产品价格:')
        # 转换为数字
        count = int(input('请输入添加的产品库存量:'))
        while count <= 0:
            count = int(input('库存量不能小于1,请重新输入:'))
        # 将产品信息组装为一个小字典
        phone = {'name':name, 'price':price, 'count':count}
        # 将小字典添加到大列表中
        phone_list.append(phone)
    elif num == 2:
        if len(phone_list) <= 0:
            print('当前无商品信息!')
            return
            # 查询手机详细信息
        query_phone(1)
        index = int(input('请输入要修改的产品序号:'))
        while index not in range(0, len(phone_list)):
            index = int(input('序号有误,请重选:'))
        # 根据index取出手机信息字典
        phone = phone_list[index]
        # 取出原来的名称
        old_name = phone['name']
        phone['name'] = input('请输入修改后的名称(%s):'%old_name)
        phone['price'] = input('请输入修改后的价格(%s):'%phone['price'])
        count = int(input('请输入修改后的库存量(%s):'%phone['count']))
        # 库存量不能为0
        while count <= 0:
            count = int(input('库存不能小于1,请重新输入:'))
        phone['count'] = count
        print('修改成功!')
    else:
        # 结束函数执行
        return
# 声明大列表,存储所有手机信息
# [{'name':'iPhone8','price':'1999','count':'1'},{'name':'iPhone8','price':'1999','count':'1'}]
phone_list = []
while True:
    # Ctrl+d 可以快速复制粘贴一行
    print('1.查看所有手机品牌')
    print('2.更改产品信息')
    print('3.移除产品信息')
    print('4.退出程序')
    # 选择操作:
    num = int(input('选择您的操作:'))
    while num not in range(1, 5):
        num = int(input('选项错误,请重选:'))
    if num == 1:
        query_phone(2)
        buy_phone()
    elif num == 2:
        update_phone()
    elif num == 3:
        print('移除产品信息')
    else:
        # 结束循环
        break

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹