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("滚犊子!")