问题描述:
从键盘录入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)