实战八:模拟京东购物流程

问题描述:

   从键盘录入5个商品信息(1001手机)添加到商品列表中,展示商品信息,提示用户选择商品,用户选中的商品添加到购物车中(购物车中的商品要逆序),用户选中的商品不存在需要有相应提示,当用户输入“q”时循环结束,显示购物商品。

1.从键盘录入5个商品信息,并添加到商品列表中。
2.展示商品信息。
3.提示用户选择商品,并将选中的商品添加到购物车中(购物车中的商品要逆序)。
4.如果用户选择的商品不存在,则给出相应提示。
5.当用户输入“q”时,结束选择过程,并显示购物车中的商品。

编程:

方法一:列表的添加和反向操作

# 创建一个空列表,存储录入的五个商品
lis = []
for i in range(5):
    goods = input("请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:")
    lis.append(goods)
# 输出所有商品信息
for j in lis:
    print(j)

# 创建一个空列表,存储购物车的商品
car = []
while True:
    flag = False #代表没有商品的情况
    num = input('请输入要购买的商品编号:')
    # 遍历商品列表,查询一下要购买的商品是否存在
    for k in lis:
        if num == k[0:4]:
            flag = True # 代表商品已找到
            car.append(k) # 添加到购物车中
            print('商品已成功添加到购物车')
            break # 退出的是for循环
    if not flag and num!='q':
        print('商品不存在')

    if num == 'q':
        break
print('_'*50)
print('您购物车里已选择的商品为:')
car.reverse()
for n in car:
    print(n)

在这里插入图片描述

方法二:类方法

# 定义商品类
class Product:
    def __init__(self, id, name):
        self.id = id
        self.name = name

    def __str__(self):
        return f"{self.id} {self.name}"

# 初始化商品列表
products = []

# 从键盘录入5个商品信息
for i in range(5):
    id = input(f"请输入第{i+1}个商品的ID(例如1001): ")
    name = input(f"请输入第{i+1}个商品的名称(例如手机): ")
    product = Product(id, name)
    products.append(product)

# 展示商品信息
print("\n商品列表:")
for i, product in enumerate(products, start=1):
    print(f"{i}. {product}")

# 初始化购物车
cart = []

# 用户选择商品
while True:
    choice = input("\n请输入要购买的商品编号(输入'q'结束选择): ").strip()

    if choice.lower() == 'q':
        break

    # 检查用户输入的商品编号是否存在
    found = False
    for product in products:
        if str(product.id) == choice:
            cart.append(product)
            found = True
            break

    if not found:
        print("商品编号不存在,请重新输入!")

# 购物车中的商品逆序
cart.reverse()

# 显示购物车中的商品
print("\n购物车中的商品(逆序):")
for product in cart:
    print(product)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值