ZongziMaker
是一个粽子制作器类,它可以制作、煮和描述粽子。
zongzi_list
:存储所有制作的粽子的列表。make_zongzi(flavor, ingredients, wrapping_leaf, cooking_time)
制作一个新的粽子并加入到粽子列表中。
flavor
:str,粽子口味。ingredients
:list,粽子的配料列表。wrapping_leaf
:str,用于包裹粽子的叶子。cooking_time
:float,粽子需要的烹饪时间。cook_all_zongzi()
煮所有的粽子,将它们标记为已煮熟状态。
describe_all_zongzi()
描述所有的粽子,打印粽子的口味、配料、包裹叶子和煮熟状态等信息。
find_by_ingredient(ingredient)
根据配料查找粽子,返回含有指定配料的粽子列表。
ingredient
:str,要查找的粽子配料。find_by_wrapping_leaf(wrapping_leaf)
根据包裹叶子查找粽子,返回使用指定包裹叶子的粽子列表。
wrapping_leaf
:str,要查找的包裹叶子。Zongzi
类表示一个粽子对象,并具有口味、配料、包裹叶子、烹饪时间和是否煮熟等属性。
flavor
:str,粽子口味。ingredients
:list,粽子的配料列表。wrapping_leaf
:str,用于包裹粽子的叶子。cooking_time
:float,粽子需要的烹饪时间。cooked
:bool,表示粽子是否已煮熟。cook()
标记粽子为已煮熟状态,设置 cooked
属性为 True
。
describe()
描述粽子的口味、配料、包裹叶子和煮熟状态等信息。
class Zongzi:
def __init__(self, flavor, ingredients, wrapping_leaf, cooking_time):
self.flavor = flavor
self.ingredients = ingredients
self.wrapping_leaf = wrapping_leaf
self.cooking_time = cooking_time
self.cooked = False
def cook(self):
self.cooked = True
def describe(self):
print("这是一个{}口味的粽子。它的配料有: {}。".format(self.flavor, ", ".join(self.ingredients)))
print("包裹叶子: {}".format(self.wrapping_leaf))
if self.cooked:
print("粽子已经煮熟了!")
else:
print("粽子还没有煮熟。")
class ZongziMaker:
def __init__(self):
self.zongzi_list = []
def make_zongzi(self, flavor, ingredients, wrapping_leaf, cooking_time):
zongzi = Zongzi(flavor, ingredients, wrapping_leaf, cooking_time)
self.zongzi_list.append(zongzi)
def cook_all_zongzi(self):
for zongzi in self.zongzi_list:
zongzi.cook()
def describe_all_zongzi(self):
for index, zongzi in enumerate(self.zongzi_list, start=1):
print("第{}个粽子:".format(index))
zongzi.describe()
def find_by_ingredient(self, ingredient):
found_zongzi = []
for zongzi in self.zongzi_list:
if ingredient in zongzi.ingredients:
found_zongzi.append(zongzi)
return found_zongzi
def find_by_wrapping_leaf(self, wrapping_leaf):
found_zongzi = []
for zongzi in self.zongzi_list:
if wrapping_leaf == zongzi.wrapping_leaf:
found_zongzi.append(zongzi)
return found_zongzi
def main():
maker = ZongziMaker()
# 制作四个粽子
maker.make_zongzi("咸肉粽", ["糯米", "咸肉", "藕片"], "竹叶", 2.5)
maker.make_zongzi("甜粽子", ["糯米", "红枣", "豆沙"], "荷叶", 1.5)
maker.make_zongzi("绿豆粽", ["糯米", "绿豆", "莲蓉"], "玉米叶", 3.0)
maker.make_zongzi("蛋黄肉粽", ["糯米", "咸蛋黄", "五花肉"], "竹叶", 2.5)
# 煮所有的粽子
maker.cook_all_zongzi()
# 描述所有的粽子
maker.describe_all_zongzi()
# 按配料查找粽子
print("\n根据配料查找粽子:")
found_by_ingredient = maker.find_by_ingredient("咸肉")
if found_by_ingredient:
print("找到了以下含有咸肉的粽子:")
for zongzi in found_by_ingredient:
zongzi.describe()
else:
print("没有找到含有咸肉的粽子。")
# 按包裹叶子查找粽子
print("\n根据包裹叶子查找粽子:")
found_by_wrapping_leaf = maker.find_by_wrapping_leaf("竹叶")
if found_by_wrapping_leaf:
print("找到了以下使用竹叶包裹的粽子:")
for zongzi in found_by_wrapping_leaf:
zongzi.describe()
else:
print("没有找到使用竹叶包裹的粽子。")
if __name__ == "__main__":
main()
运行结果:
第1个粽子:
这是一个咸肉粽口味的粽子。它的配料有: 糯米, 咸肉, 藕片。
包裹叶子: 竹叶
粽子已经煮熟了!
第2个粽子:
这是一个甜粽子口味的粽子。它的配料有: 糯米, 红枣, 豆沙。
包裹叶子: 荷叶
粽子已经煮熟了!
第3个粽子:
这是一个绿豆粽口味的粽子。它的配料有: 糯米, 绿豆, 莲蓉。
包裹叶子: 玉米叶
粽子已经煮熟了!
第4个粽子:
这是一个蛋黄肉粽口味的粽子。它的配料有: 糯米, 咸蛋黄, 五花肉。
包裹叶子: 竹叶
粽子已经煮熟了!
根据配料查找粽子:
找到了以下含有咸肉的粽子:
这是一个咸肉粽口味的粽子。它的配料有: 糯米, 咸肉, 藕片。
包裹叶子: 竹叶
粽子已经煮熟了!
这是一个蛋黄肉粽口味的粽子。它的配料有: 糯米, 咸蛋黄, 五花肉。
包裹叶子: 竹叶
粽子已经煮熟了!
根据包裹叶子查找粽子:
找到了以下使用竹叶包裹的粽子:
这是一个咸肉粽口味的粽子。它的配料有: 糯米, 咸肉, 藕片。
包裹叶子: 竹叶
粽子已经煮熟了!
这是一个蛋黄肉粽口味的粽子。它的配料有: 糯米, 咸蛋黄, 五花肉。
包裹叶子: 竹叶
粽子已经煮熟了!