Python以及c学习者可以加群:651707058
第一步:让用户输入预算
第二步:展示编号 商品 价格
第三步:用户可以将商品选进购物车,也可以将购物车的东西拿出
第四步:显示用户所选商品:重复的商品在商品后面乘以数量
第五步:结算时:
预算足够:显示余额
预算不够:显示还差多少金额
代码:
money = int(input("请输入预算:"))
shop = [['1','iphone8',5888],['2','kndle',988],['3','ps4 pro',2800],['4','psv',1200],
['5','psvtv',450],['6','ps4 controler',230],['7','mp3',100]]
i = 1#为了通过修改i 退出多重循环
allChoice = []
while(i):
for num in range(len(shop)): # 打印商品列表
print(str(shop[num][0]).ljust(5), shop[num][1].ljust(20), str(shop[num][2]).ljust(10), )
choice = input("请输入要加入购物车的商品编号:")
choice = [int(it) for it in choice.split(' ')]
allChoice += choice #choice是单次选择的商品列表,allchoice是所有选择的商品列表
while(1):
total = 0
choiceSet = set(allChoice)#转换成集合,便于不重复计数
for it in choiceSet:
print(shop[it-1][0],shop[it-1][1],shop[it-1][2],'*',allChoice.count(it))
total += shop[it-1][2]*allChoice.count(it)
print("总计:",total,"余额:",money-total)
print("---------------------------------\n"
"1:继续选购 2:整理购物车 3:结算\n")
option = int(input( "请选择:"))
if option == 1:
break
elif option == 2:
item_num = int(input("请输入要删除的商品"))
allChoice.remove(item_num)#每次只会删除一个元素
continue
else:
if money>=total:
print("购物结束,余额为:",money-total)
else:
print("余额不足,还差金额:",total-money)
i = 0
break#整个退出
运行情况:
请输入预算:8000
1 iphone8 5888
2 kndle 988
3 ps4 pro 2800
4 psv 1200
5 psvtv 450
6 ps4 controler 230
7 mp3 100
请输入要加入购物车的商品编号:1 2 2
1 iphone8 5888 * 1
2 kndle 988 * 2
总计: 7864 余额: 136
---------------------------------
1:继续选购 2:整理购物车 3:结算
请选择:2
请输入要删除的商品2
1 iphone8 5888 * 1
2 kndle 988 * 1
总计: 6876 余额: 1124
---------------------------------
1:继续选购 2:整理购物车 3:结算
请选择: