python葵花宝典-购物车
需求:1、让用户输入金额
2、选择要购买的东西加入购物车
3、当商品的总价超过预算提示金额不足
4、让用户输入Q退出
5、用户退出后,提示消费了多少钱,余额多少编程:
goods = [ {"name":"电脑","price":4999}, {"name":"鼠标","price":49}, {"name":"键盘","price":99}, {"name":"显示器","price":1999}, {"name":"主机","price":999}, ] fei_yong = 0 shop_car ={} #列表的键==序号,列表的值==商品 money = input("请输入你的金额") if money.isdigit(): #这是真钱 while True: for i in range(len(goods)): print(i+1,goods[i]["name"],goods[i]["price"]) #==================商品展示================== choose = input("请输入你要购买的商品(N/结算--Q/退出)") if choose.isdigit() and 0 < int(choose) <= len(goods): #让用户输入商品序号并判断是不是数字以及在正常列表内 int_index = int(choose) - 1 #通过输入的内容减一取得goods的索引 if shop_car.get(int_index) == None: shop_car[int_index] = 1 else: shop_car[int_index] = shop_car[int_index] + 1 #===========让用户把商品加入到购物车============ elif choose.upper() == "N": #结算 #... == pass #1.2 - 1.0 == 0.2 获取到的是False 牛顿偏离法:一个数学算法导致的偏差 for f in shop_car: fei_yong = fei_yong + shop_car[f] * goods[f]["price"] if int(money) - fei_yong >= 0: for k in shop_car: print(f"你购买的商品有{goods[k]['name']},单价是{goods[k]['price']},数量{shop_car[k]}") else: print("余额不足,请删除购物车商品") for i,v in enumerate(shop_car): #枚举 print(f"{i}{goods[v]['name']}{shop_car[v]}") str_del = int(input("请输入你要删除的商品")) shop_car[str_del - 1] = shop_car[str_del - 1] - 1 if shop_car[str_del - 1] == 0: shop_car.pop(str_del-1) elif choose.upper() == "Q": #退出 print(f"你的消费金额是:{fei_yong},余额{int(money) - fei_yong}") break else: print("输入有误,请重新输入") else: #你给的假钱 print("请重新输入")
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758