当前位置:   article > 正文

控制台商品购买系统(Python经典编程案例)_python限制用户等级 购买商品

python限制用户等级 购买商品

用户可以在控制台输入指令,实现添加商品,修改商品数量,删除商品,结算商品。

  1. 程序使用元组代表商品,元组的多个元素分别代表商品条码,商品名称,商品单价;
  2. 使用dict来表示系统当前仓库中的所有商品,dict的key是商品条码,value是商品元组;
  3. 使用list列表来记录用户的购物清单,list的列表的元素代表购物明细项,每个明细项也是一个list列表。
# 定义仓库
repository = dict()
# 定义购物清单对象
shop_list = []

# 定义一个函数来初始化商品
def init_repository():
    # 初始化了很多的商品,每个元组代表一个商品
    goods1 = ("1001", "时尚-组合柜", 888.0)
    goods2 = ("1002", "时尚-西蒙斯床", 1969.0)
    goods3 = ("1003", "时尚-餐桌", 1259.0)
    goods4 = ("1004", "时尚-精品沙发", 3999.0)
    goods5 = ("1005", "时尚-床头柜", 108.0)
    goods6 = ("1006", "时尚-梳妆台", 77.0)
    # 把商品入库(放入dict中),条码作为key
    repository[goods1[0]] = goods1
    repository[goods2[0]] = goods2
    repository[goods3[0]] = goods3
    repository[goods4[0]] = goods4
    repository[goods5[0]] = goods5
    repository[goods6[0]] = goods6
# 显示超市的商品清单,就是遍历代表仓库的dict字典
def show_goods():
    print("欢迎光临 家具超市")
    print('家具超市的商品清单:')
    print("%13s%40s%10s" % ("条码", "商品名称", "单价"))
    # 遍历repository的所有value来显示商品清单
    for goods in repository.values():
        print("%15s%40s%12s" % goods)
# 显示购物清单,就是遍历代表购物清单的list列表
def show_list():
    print("=" * 100)
    # 如果清单不为空的时候,输出清单的内容
    if not shop_list:
        print("还未购买商品")
    else:
        title = "%-5s|%15s|%40s|%10s|%4s|%10s" % \
            ("ID", "条码", "商品名称", "单价", "数量", "小计")
        print(title)
        print("-" * 100)
        # 记录总计的价钱
        sum = 0
        # 遍历代表购物清单的list列表
        for i, item in enumerate(shop_list):
            # 转换id为索引加1
            id = i + 1
            # 获取该购物项的第1个元素:商品条码
            code = item[0]
            # 获取商品条码读取商品,再获取商品的名称
            name = repository[code][1]
            # 获取商品条码读取商品,再获取商品的单价
            price = repository[code][2]
            # 获取该购物项的第2个元素:商品数量
            number = item[1]
            # 小计
            amount = price * number
            # 计算总计
            sum = sum + amount
            line = "%-5s|%17s|%40s|%12s|%6s|%12s" % \
                (id, code, name, price, number, amount)
            print( line )
        print("-" * 100)
        print("                          总计: " , sum)
    print("=" * 100)
# 添加购买商品,就是向代表用户购物清单的list列表中添加一项。
def add():
    # 等待输入条码
    code = input("请输入商品的条码:\n")
    # 没有找到对应的商品,条码错误
    if code not in repository:
        print("条码错误,请重新输入")
        return
    # 根据条码找商品
    goods = repository[code]
    # 等待输入数量
    number = input("请输入购买数量:\n")
    # 把商品和购买数量封装成list后加入购物清单
    shop_list.append([code, int(number)])
# 修改购买商品的数量,就是修改代表用户购物清单的list列表的元素
def edit():
    id = input("请输入要修改的购物明细项的ID:\n")
    # id减1得到购物明细项的索引
    index = int(id) - 1
    # 根据索引获取某个购物明细项
    item = shop_list[index]
    # 提示输入新的购买数量
    number = input("请输入新的购买数量:\n")
    # 修改item里面的number
    item[1] = int(number)
# 删除购买的商品明细项,就是删除代表用户购物清单的list列表的一个元素。
def delete():
    id = input("请输入要删除的购物明细项的ID: ")
    index = int(id) - 1
    # 直接根据索引从清单里面删除掉购物明细项
    del shop_list[index]
def payment():
    # 先打印清单
    show_list()
    print('\n' * 3)
    print("欢迎下次光临")
    # 退出程序
    import os
    os._exit(0)


cmd_dict = {'a': add, 'e': edit, 'd': delete, 'p': payment, 's': show_goods}
# 显示命令提示
def show_command():
    # 等待命令
    cmd = input("请输入操作指令: \n" + "    添加(a)  修改(e)  删除(d)  结算(p)  超市商品(s):")
    # 如果用户输入的字符没有对应的命令
    if cmd not in cmd_dict:
        print("暂无此商品!")
    else:
        cmd_dict[cmd]()


init_repository()
show_goods()
# 显示清单和操作命令提示
while True:
    show_list()
    show_command()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124

执行结果如下图:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/118670?site
推荐阅读
相关标签
  

闽ICP备14008679号