#购物车程序
# 需求:
# (1)我和黑姑娘去逛街,程序实现打印商品列表,用户可以通过商品编号来选购商品,允许不断的买商品
# (2)程序启动时,让用户先输入自己的工资,总购物的商品价格不能超过工资
# (3)用户随时可退出程序。退出时,打印,分别买了哪些商品,及余额
# 规则:不能用dict和set
#自己写的
#输入工资
gongzi=input("请输入您的工资:")
if not gongzi.isdigit():
print("输入工资格式不合法!")
else:
gongzi=int(gongzi)
#打印商品列表[口红(0),洗面奶(1),袜子(2),面包(3),电脑(4),饮料(5)]
# 商品格式[编号,商品名,价格],列表索引为商品的编号
shangpinliebiao=[[0,"口红",120],[1,"洗面奶",100],[2,"袜子",23],[3,"面包",12],[4,"电脑",8000],[5,"饮料",8]]
print("商品列表为:".center(50,"-"))
for shangpin in shangpinliebiao:
print(f"{shangpin}")
print("------".center(50,"-"))
#购买商品
mai=True #设置一个标志位,用户不再购买时,结束程序
money=0 #购买商品花的钱
mddxl=[] #存放已经购买的商品
while mai==True:
mddx = input("输入您要买的东西的编号:")
# 第一次判断输入的编号是否合法
if not mddx.isdigit():
print("输入编号不合法!")
else:
mddx = int(mddx)
# 第二次判断输入的编号是否在商品列表里
for item in shangpinliebiao:
if mddx == item[0]:
money += item[2] # 如果在列表里,加钱
mddxl.append(item) # 存入已经买的东西
break #找到购买的商品,结束本次循环
else:
print("抱歉,您输入的商品编号不在商品列表中")
#第三次判断购买的商品是否超过了工资
if money > gongzi: # 如果买的东西超过了工资,退出程序
mai == False
print("您的工资不够了")
break
# 判断是否继续购买
yiyuan = input("请问您还要继续购买吗?继续购买请输入yes,退出程序请输入no:")
if yiyuan == "yes":
mai = True
else:
mai = False
#遍历购买的商品列表并打印
print("已经购买的商品列表".center(50,"-"))
quchongqian=[]
quchonghou=[]
for goumai in mddxl:
cishu=mddxl.count(goumai)
quchongqian.append([goumai,cishu])
for goumai1 in quchongqian:
if not goumai1 in quchonghou:
quchonghou.append(goumai1)
for q in quchonghou:
print(q)
print(f"您一共消费{money},您还剩{gongzi-money}")
print("------".center(50,"-"))