第二天作业_购物车
作业需求:
1. 用户先给自己的账户充钱:比如先充3000元。 2. 页面显示 序号 + 商品名称 + 商品价格,如: 1 电脑 1999 2 鼠标 10 … n 购物车结算 3. 用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。 4. 如果用户输入的商品序号有误,则提示输入有误,并重新输入。 5. 用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。 6. 用户输入Q或者q退出程序。 7. 退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少
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('商品序号输入错误, 请重新输入')