article = {
'1': ['电脑', 199],
'2': ['鼠标', 100],
'3': ['键盘', 999],
'4': ['显示器', 1999],
}
shopping_cart = {} # 存放已添加的商品
# 输入充值的金额, 如果输入的是数字就把money转换成int类型
while True:
money = input('请输入充值金额: ')
if money.isdigit():
money = int(money)
break
else:
print('请重新输入正确的充值金额,只支持输入整数\n')
# 打印商品列表
print('商品列表'.center(20, '#'))
for item in article:
print(f'{item}. {article[item][0]} - {article[item][1]}')
while True:
key = input('\n请输入商品编号(nN)结算(qQ)退出: ').strip()
# 添加商品到购物车的逻辑
if key in article:
shopping_cart.setdefault(key, article[key])
if len(shopping_cart[key]) != 3:
shopping_cart[key].append(0)
shopping_cart[key][2] += 1
print(f'购物车添加成功: {article[key][0]}: {article[key][1]}')
# 购物车结算的逻辑
elif key.upper() == 'N':
total_price = 0
print('结算清单'.center(20, '#'))
for item in shopping_cart:
print(f'{item}. {shopping_cart[item][0]} - {shopping_cart[item][1]}元 - {shopping_cart[item][2]}个')
# 计算购物车的商品总价格
total_price += shopping_cart[item][1] * shopping_cart[item][2]
# 判断购物车的商品总价格是否小于充值金额
if total_price < money:
print(f'本次消费{total_price}元, 剩余金额{money - total_price}元, 欢迎下次光临!')
break
else:
while True:
key2 = input('余额不足 - 请输入要删除的商品序号: ')
if key2 in shopping_cart:
# 判断购买的商品数量是否等于1, 如果True则直接从字典删除该商品
if shopping_cart[key2][2] == 1:
shopping_cart.pop(key2)
break
# 如果商品数量不等于1则商品数量减1
else:
shopping_cart[key2][2] -= 1
break
else:
print('请正确输入要删除的商品序号')
# 输入q/Q退出程序
elif key.upper() == 'Q':
break
# 输入的是非数字或者超出编号范围
else:
print('商品序号输入错误, 请重新输入')