用类,查找,排序等数据结构(Python),实现关于外卖平台的菜品信息管理
输入菜品的名称就能输出菜品的价格等菜品信息,可以增删菜品。
直接上代码,==========================================
外卖平台菜品信息的Python代码实现,包括菜品名称、价格、库存等信息的存储和管理,以及增删菜品等功能:
class Dish:
def __init__(self, name, price, inventory):
self.name = name
self.price = price
self.inventory = inventory
class DishManager:
def __init__(self):
self.dishes = []
def add_dish(self, dish):
self.dishes.append(dish)
def remove_dish(self, name):
for dish in self.dishes:
if dish.name == name:
self.dishes.remove(dish)
break
def find_dish(self, name):
for dish in self.dishes:
if dish.name == name:
return dish
def show_dishes(self):
for dish in self.dishes:
print("菜品名称:", dish.name)
print("菜品价格:", dish.price)
print("菜品库存:", dish.inventory)
dish_manager = DishManager()
# 添加菜品
dish_manager.add_dish(Dish("宫保鸡丁", 29.9, 100))
dish_manager.add_dish(Dish("麻婆豆腐", 25.0, 80))
dish_manager.add_dish(Dish("水煮肉片", 35.0, 120))
# 显示菜品列表
print("菜品信息:")
dish_manager.show_dishes()
# 查找菜品信息
name = input("请输入要查找的菜品名称:")
dish = dish_manager.find_dish(name)
if dish:
print("菜品名称:", dish.name)
print("菜品价格:", dish.price)
print("菜品库存:", dish.inventory)
else:
print("该菜品不存在")
# 删除菜品
name = input("请输入要删除的菜品名称:")
dish_manager.remove_dish(name)
print("删除成功")
# 显示菜品列表
print("菜品信息:")
dish_manager.show_dishes()
运行程序后,可以进行菜品的添加、删除、查找等操作。例如,添加了三个菜品:"宫保鸡丁","麻婆豆腐","水煮肉片",可以通过输入菜品名称来查找相应的菜品信息,也可以删除菜品,最后再次显示所有菜品的信息。
不知道你这个问题是否已经解决, 如果还没有解决的话:要求键盘输入,并进行数据有效性判断,去掉重复元素后,升序输出列表。提示可采用字符串函数isdigit()判断是否为数值型
输入格式: 输入一个数字序列,如:1 23 33 45 6 7 33
输出格式: 针对合法输入,输出去重且按升序排序后的列表。例如:[1, 6, 7, 23, 33, 45]。
针对非法输入,输出“Wrong Format.”(非法输入指的是非数值型)
输入样例1: 在这里给出一组输入。例如:
123 45 32 asd
输出样例1:
在这里给出相应的输出。例如:
Wrong Format.
输入样例2:
在这里给出一组输入。例如:
123 34 5 67 89 56 89 76 123 123
输出样例2:
在这里给出相应的输出。例如:
[5, 34, 56, 67, 76, 89, 123]
我可以根据你的需求给出一个简单的菜品信息管理系统的实现思路。具体来说,这个系统可以由一个class来实现,这个class包含一个字典来存储菜品信息,键是菜品名称,值是一个包含菜品信息的字典。为了实现类似查找和排序这样的操作,我们可以将这个字典的键或值存储到一个有序的列表中,并用一个函数来保持这两者同步更新。下面是一个简单实现的代码示例:
class DishManager:
def __init__(self):
self.dishes = {}
self.sorted_keys = []
def add_dish(self, name, price, description):
self.dishes[name] = {'price': price, 'description': description}
self.sorted_keys = sorted(list(self.dishes.keys()))
def remove_dish(self, name):
self.dishes.pop(name)
self.sorted_keys = sorted(list(self.dishes.keys()))
def get_dish_price(self, name):
return self.dishes[name]['price']
def get_dish_description(self, name):
return self.dishes[name]['description']
def get_sorted_dish_names(self):
return self.sorted_keys
在这个类中,我们使用了字典来存储菜品信息,使用菜品名称作为键,值是一个字典包含菜品价格和描述。为了便于查找和排序,我们使用了一个有序的列表soted_keys
来存储菜品名称,并在添加和删除菜品时保持这个列表与字典中的键同步更新。这样做的好处是,我们可以利用有序列表的一些特性来实现查找和排序。例如,我们可以使用列表的index
方法来查找某个名称的菜品所在的位置,再用这个位置来从字典中查找菜品价格和描述。我们也可以对有序列表进行排序,这会自动将字典中的键按照名称排序。
下面是一个使用这个类的示例代码:
dish_manager = DishManager()
dish_manager.add_dish('Steak', 20, 'Grilled beef with vegetables')
dish_manager.add_dish('Pasta', 15, 'Homemade tomato sauce with pasta')
dish_manager.add_dish('Salad', 10, 'Fresh greens with toppings')
print(dish_manager.get_sorted_dish_names()) # ['Pasta', 'Salad', 'Steak']
print(dish_manager.get_dish_price('Steak')) # 20
print(dish_manager.get_dish_description('Pasta')) # 'Homemade tomato sauce with pasta'
dish_manager.remove_dish('Steak')
print(dish_manager.get_sorted_dish_names()) # ['Pasta', 'Salad']
在这个示例中,我们首先创建一个DishManager
实例,并添加了三个菜品。然后我们使用get_sorted_dish_names
方法获取菜品名称的有序列表,并打印出来。接着我们使用get_dish_price
方法获取一道菜的价格,并使用get_dish_description
方法获取另一道菜的描述。然后我们删除了一道菜,再次获取菜品名称的有序列表。