# 让用户输入金钱
money = input("请输入充值的金额:")
if money.isdecimal():
# 判断用户输入的是不是数字(是不是真钱)
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
# goods就是超市中的商品货架
car = {}
# 推的购物车
money_sum = 0
# 消费的总额
while True:
# 循环展示商品
for i in range(len(goods)):
print(i+1,goods[i]["name"],goods[i]["price"])
# 展示商品序号,名称,价格
num = input("请输入您要购买的商品序号(N/结算|Q/退出):")
# 用户输入要购买的序号
if num.isdecimal() and 0 < int(num) <= len(goods):
# 判断用户输入商品序号在商品货架上
num = int(num) - 1
# 展示的时候进行加1 用户输入的商品序号进行减1
print(goods[num]["name"],goods[num]["price"])
# 展示用户选择的商品名称和价格
if car.get(goods[num]["name"]):
# 判断用户推得购物车中是否有此商品
car[goods[num]["name"]][goods[num]["price"]] += 1
# 在针对此商品数量进行加1
else:
# 此商品不在购物车中
car[goods[num]["name"]] = {goods[num]["price"]:1}
# 将此商品添加到购物车中
print(car)
# 查看我们的购车中都有哪些商品
elif num.upper() == "N":
# 结算功能
for em in car:
# 循环查看购物车中的商品
sp_num = list(car[em].values())[0]
# 每一个商品的数量
sp_price = list(car[em].keys())[0]
# 每一个商品的单价
money_sum += int(sp_num) * int(sp_price)
# 购物车中所有商品的总价格
print(f"商品:{em}\t数量:{sp_num}\t单价:{sp_price}")
# 给用户展示购买了哪些商品
if int(sp_num) * int(sp_price) <= int(money):
# 判断用户购物车中商品的总金额时候小于用户的充值金额
money = int(money) - money_sum
# 进行支付
print(f"结算成功,消费金额 :{money_sum}账户余额 :{money}")
# 给用户显示此次购物共消费的金额
car.clear()
# 清空购物车(结算完了)
else:
print("钱不够啊!")
sp_name = input("请输入您要删除的商品名称:")
# 让用户输入要删除的商品名称
if sp_name in car:
# 判断要删除的商品是否在购物车中
if car[sp_name][list(car[sp_name].keys())[0]] > 0:
# 判断此商品的总数量是否大于0
car[sp_name][list(car[sp_name].keys())[0]] -= 1
# 对商品的总数量进行减1
if car[sp_name][list(car[sp_name].keys())[0]] == 0:
# 如果此商品不在购物车中
del car[sp_name]
# 删除此商品
else:
print("商品不存在!")
elif num.upper() == "Q":
# 退出
print("欢迎下次光临!")
money = int(money) - money_sum
# 用户的充值金额 减去消费金额 获取最新的账号余额
print(f"结算成功,消费金额 :{money_sum}账户余额 :{money}")
# 给用户显示此次购物消费了多少钱,还剩多少钱
break
# 将客人请出超市
else:
print("输入错误,请重新输入!")
else:
print("滚犊子!")