python基本数据类型实现购物车
功能要求:
- 要求用户输入总资产,例如:2000
- 显示商品列表,让用户根据序号选择商品,加入购物车
- 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
- 附加:可充值、某商品移除购物车
1
2
3
4
5
6
|
goods = [ { "name" : "电脑" , "price" : 1999 }, { "name" : "鼠标" , "price" : 10 }, { "name" : "游艇" , "price" : 20 }, { "name" : "美女" , "price" : 998 }, ] |
goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] money=int(input("请输入您的总金额:")) cart={}#定义一个空的购物车 #商品列表 for i in goods: print(i["name"],i["price"]) while True: i2=input("请选择商品,y/Y结算;") #如果选择结算,则退出循环 if i2.lower()=="y": break; for item in goods: if item["name"]==i2: name=item["name"] #如果购物车已有该商品,数量+1,若美女,则新建字典用于存储商品信息 if name in cart.keys(): cart[name]["num"]+=1; else: cart[name]={"num":1,'sigle_price':item["price"]} print(cart) #结账 all_prices=0 for k,v in cart.items(): n=v['sigle_price'] m=v['num'] all_sum=n*m; all_prices+=all_sum; if all_prices>money: print("余额不足") else: print("消费:",all_prices)
下面的实现方法存在点小问题,暂时还未找到解决方案,有懂得的朋友欢迎指正!
""" 功能要求: 要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 附加:可充值、某商品移除购物车 """ """ 1.创建空的购物车列表 2.要求用户输入金额资产 3.输入后列出商品列表 4.用户选择商品,加入购物车 5.结算,如果商品价格大于用户总资产提示余额不足,询问是否删除商品 6.结算资金充裕,提示购买成功,显示余额并退出 """ goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] cart={"good_list":[],"price_list":[]} #用户输入账户金额 money=int(input("请输入您的账户金额:")) #打印商品信息 print("Product List:") while True: for k,v in enumerate(goods,1): for i in range(len(goods)): if k-1==i: print(k,goods[i]["name"],goods[i]["price"]) #用户选择商品 products=int(input("请选择你喜欢的商品:")) print("你选择的商品是:",goods[products-1]["name"],"花费:",goods[products-1]["price"]) #计算选择商品后的余额 cur_assets=money-goods[products-1]["price"] if cur_assets>0: cart["good_list"].append(goods[products-1]["name"]) #如果资金充足,将商品加入购物车,并结算 cart["price_list"].append(goods[products-1]["price"]) print("你目前的账户余额为:",cur_assets,"¥") choose=input("继续购物,请按'c';结账,请按'o';显示信息,请按'l';退出,请按'q'") #查看加入购物车的商品信息 if choose=='l': for prod,val in enumerate(cart["good_list"],1): print(prod,val) break elif choose=='q': print("谢谢惠顾") break; elif choose=='c': continue elif choose=='o': total=sum(cart["price_list"]) if total>money: print("余额不足!") else: print("谢谢,本次花费:",total,'¥',"余额:",money-total,"¥") break; else: print("错误,请重新输入:") else: print("对不起,您的账户余额不足!") break