基本购物车的编写
1,完成一个商城购物车的程序。
要求:
1,用户先给自己的账户充钱:比如先充3000元。
2.商品内容为:
goods = [
{'name':'苹果','price':10},
{'name':'梨子','price':12},
{'name':'香蕉','price':15},
{'name':'橘子','price':18},
{'name':'葡萄','price':20}
]
3,页面显示 序号 + 商品名称 + 商品价格,如:
1 苹果 10
2 梨子 12
…
n 购物车结算
q或者Q退出程序。
4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。
5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。
6,用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,
若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。
7,用户输入Q或者q退出程序。
8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,
账户余额多少,并将购买信息写入文件。
print('欢迎光临本店!'.center(50,'-')) goods = [ {'name':'苹果','price':10}, {'name':'梨子','price':12}, {'name':'香蕉','price':15}, {'name':'橘子','price':18}, {'name':'葡萄','price':20} ] shopping_car = [] balance = 0 while 1: print(''' 请选择你的操作 1.充值 2.购买商品 3.查看购物车 ''') user_choose = input('请选择1~3,输入q或者Q退出:') if user_choose.upper() == 'Q': print('欢迎下次光临!'.center(50,'*')) break elif user_choose == '1': Add_balance = input('请输入充值的金额') if Add_balance.isdigit(): balance += int(Add_balance) print('你当前的金额为{}'.format(balance)) else: print('输入有误,请重新输入') elif user_choose == '2': while 1: print('商品信息如下:'.center(50,'-')) for i, k in enumerate(goods): print('序号:{}\t商品:{}\t价格:{}{}'.format(i, k['name'], k['price'], '元')) print('请选择你需要购买的商品'.center(50, '-')) user_choose_goods = input('请选择0~{},输入q或者Q退出'.format(len(goods)-1)) if user_choose_goods.upper() == 'Q': break elif 0 <= int(len(user_choose_goods)) < len(goods): shopping_car.append(goods[int(user_choose_goods)]) else: print('输入有误,请重新输入') elif user_choose == '3': count = 0 print(f' \t 序号 \t 名称 \t\t 价格') for i in range(len(shopping_car)): print(' \t {} \t\t {} \t\t {}'.format(i,goods[i+1]['name'],goods[i+1]['price'])) count += int(shopping_car[i]['price']) print(''' 总价: {} 余额: {} 输入n结算,输入商品序号0~{}删除商品 '''.format(count,balance,len(shopping_car)-1)) while 1: user_choose_shop = input('请输入【q或Q返回上一级】,【0~{}删除对应商品】,【n结算】'.format(len(shopping_car)-1)) if user_choose_shop.upper() == 'Q': break elif user_choose_shop.upper() == 'N': if count <= balance: balance = balance - count print('结算成功,当前余额为{}'.format(balance)) break else: print('余额不足,请充值') break elif 0 < int(user_choose_shop) <= (len(shopping_car))+1: del_goods = shopping_car.pop(int(user_choose_shop)-1) print('您删除了{}'.format(del_goods)) else: print('输入有误,请重新输入') else: print('输入有误,请重新输入')