以下代码供初学者练习简单语法及语法应用,逻辑跟真实项目购物车逻辑差异较大,适合小白观赏。
现有商品列表如下:
1. products = [["iphone",6888],["MacPro",14800],["小米13",5999],["Coffee",31],["Book",60],["Nike",699]],需打印出以下格式:
2.根据上面的products列表写一个循环,不断询问用户想买什么,用户选择一个商品编号,就把对应的商品2添加到购物车里,最终用户输入q退出时,打印购买的商品列表。
代码:
products = [['iphone',6888],['MacPro',14800],['小米13',5999],['Coffee',31],['Book',60],['Nike',699]]
print('-'*5,'商品列表','-'*5)
i = 0
productLength = len(products)
while i<productLength: # 商品列表
print(i,products[i][0],'\t',products[i][1])
i += 1
goods = [] # 存储选购的商品序号
goodsRepeat = [] # 控制每个商品只能买一次
money = 0 # 选购商品的总金额
j = 1
while j<=productLength:
num = input('请输入你需要购买商品的序号,如果选购完毕输入q退出选购:')
if num.isnumeric():
num = int(num) # 转为整形
if num>=productLength:
print("请输入0-%d以内的序号!"%(productLength-1))
else:
# 判断商品是否已经添加过 添加过则不进行再次添加
if num in goodsRepeat:
print('商品重复添加!')
else:
goods.append(products[num])
goodsRepeat.append(num)
j += 1
else:
if num=='q':
j = (productLength+1)
else:
print("请输入数字")
if len(goods)==0:
print('购物车为空!')
else:
print('-' * 5, '购物车列表', '-' * 5)
goodsLength = len(goods)
for i in range(0, goodsLength):
print(i, goods[i][0], goods[i][1], '\t')
money += goods[i][1]
print('商品共%d件;总价格为:%d'%(goodsLength,money))
代码有不足之处可以留言指教。