menus = [ {"m_name": "鱼香肉丝", "m_money": 33, "m_goods": 0, "m_number": 10}, {"m_name": "麻婆豆腐", "m_money": 11, "m_goods": 0, "m_number": 10}, {"m_name": "水煮肉片", "m_money": 66, "m_goods": 0, "m_number": 10}, ] menus_car =[] orders =[] # 2.点击我要点菜,显示所有菜品信息及编号。 while True: print("----------点餐系统----------") print("1.我要点餐") print("2.我要结账") print("3.我要点赞") print("4.退出系统") print("请选择编号:",end="") num1 = int(input()) if num1 ==1: while True: menu_no = 1 print(" ") print("----------点餐界面----------") print("菜单编号\t\t菜单名称\t\t单价\t\t点赞数\t\t剩余库存") for menu in menus: print("{0}\t\t{1}\t\t{2}\t\t{3}\t\t{4}\t\t".format( menu_no, menu.get("m_name"), menu.get("m_money"), menu.get("m_goods"), menu.get("m_number") )) menu_no += 1 # 3.用户选择编号,将菜品添加到购物车,并扣除菜品信息中的分数。 print("请选择菜品编号(0返回首页): ",end="") user_menu_no = int(input()) #用户输入菜品编号 if user_menu_no==0: break print("请输入购买份数:", end="") user_menu_number = int(input()) # 计算菜品总价 user_menu_money = menus[user_menu_no-1].get("m_money") * user_menu_number #1.获得菜品信息 new_menus = menus[user_menu_no - 1] #将点菜信息赋值给新的变量 new_menus.update({"user_menu_number":user_menu_number}) new_menus.update({"user_menu_money":user_menu_money}) #2.放入购物车 menus_car.append(new_menus) elif num1 ==2: print(" ") print("----------结账界面----------") print("菜单名称\t\t单价\t\t份数\t\t总价") goodsum = 0; for menucar in menus_car: goodsum += menucar.get("user_menu_money") print("{0}\t\t{1}\t\t{2}\t\t{3}".format( menucar.get("m_name"), menucar.get("m_money"), menucar.get("user_menu_number"), menucar.get("user_menu_money") )) print("购物车合计:",goodsum) while True: print("请输入金额:",end="") user_money = float(input()) if goodsum > user_money: print("余额不足,请重新输入。") else: print("实付%f,找零%f"%(user_money,(user_money-goodsum))) #减库存 for menucar1 in menus_car: #循环购物车中的菜品 for menu2 in menus: #循环菜单中的菜品 #获得购物车菜品名称 并 比较菜单中的菜品名称 查找是否存在 if menucar1.get("m_name") == menu2.get("m_name"): #更新当前菜品信息中的 库存量 当前库存-购买份数 menu2.update({"m_number":menu2.get("m_number")-menucar1.get("user_menu_number")}) orders = menus_car.copy() menus_car.clear() break elif num1 ==3: while True: print(" ") print("----------点赞界面----------") print("菜单名称\t\t单价\t\t份数\t\t总价\t\t点赞数") for order in orders: print("{0}\t\t{1}\t\t{2}\t\t{3}\t\t{4}".format( order.get("m_name"), order.get("m_money"), order.get("user_menu_number"), order.get("user_menu_money"), order.get("m_goods"), )) m_goods_numbers = int(input("请输入点赞数(按0退出):")) for goods_numbers in orders: # 循环订单中的菜名 for goods_numbers_1 in menus: # 循环菜单中的菜名 if goods_numbers.get("m_name") == goods_numbers_1.get("m_name"): goods_numbers_1.update({"m_goods": goods_numbers_1.get("m_goods")+ m_goods_numbers}) if m_goods_numbers == 0: break elif num1 ==4: print(" ") print("----------退出系统----------") break