Python 使用用户输入建立订购商品的决策树
我正在尝试编程一个决策树,以允许客户根据他们的输入订购商品。到目前为止,我已经设计了一个嵌套的if-elif条件结构来决定客户是否要订购-->什么样的订单类别--?该类别的什么产品-->什么尺寸-->什么数量 下面是一个结构示例,如果我继续这个过程,它将变得更加嵌套。我的问题是,这是否可以通过决策树数据结构实现,例如收集用户输入的字典,并使用递归算法遍历该字典以打印订单。如果是,这将如何编码Python 使用用户输入建立订购商品的决策树,python,python-3.x,if-statement,data-structures,tree,Python,Python 3.x,If Statement,Data Structures,Tree,我正在尝试编程一个决策树,以允许客户根据他们的输入订购商品。到目前为止,我已经设计了一个嵌套的if-elif条件结构来决定客户是否要订购-->什么样的订单类别--?该类别的什么产品-->什么尺寸-->什么数量 下面是一个结构示例,如果我继续这个过程,它将变得更加嵌套。我的问题是,这是否可以通过决策树数据结构实现,例如收集用户输入的字典,并使用递归算法遍历该字典以打印订单。如果是,这将如何编码 eatOrNo = input("Type yes to eat or no to cancel")
eatOrNo = input("Type yes to eat or no to cancel")
if eatOrNo == 'yes':
category = input('Type Hot Drink or Cold Drink or Food')
if category == 'Hot Drink':
hotDrink = input("Espresso or Cappucino")
elif category == 'Cold Drink':
coldDrink = input("Iced Coffee or Iced Tea")
elif category == 'Food':
coldDrink = input("Toast or Sandwich")
else:
print('error')
elif eatOrNo == 'no':
print('cancelled')
else:
print('error')
这是一个例子:
>>> dict = {"first":"1", "second":"2"}
>>> dict
{'first': '1', 'second': '2'}
>>> dict["first"] = 2
>>> dict
{'first': 2, 'second': '2'}
如果要将输入添加为键,可以:
>>> dict["third"] = "3"
>>> dict
{'first': 2, 'second': '2', 'third': '3'}
Idk如果这正是您想要的,但应该给您一个想法:
另外,在主if/else中,在else之后有一个elif,并且有一个重复的else
empty_dict = {}
eatOrNo = input("Type yes to eat or no to cancel")
if eatOrNo == 'yes':
empty_dict["eatOrno"] = "yes"
category = input('Type Hot Drink or Cold Drink or Food')
if category == 'Hot Drink':
empty_dict["category"] = 'Hot Drink'
hotDrink = input("Espresso or Cappucino")
empty_dict["Food"] = coldDrink
elif category == 'Cold Drink':
empty_dict["category"] = 'Cold Drink'
coldDrink = input("Iced Coffee or Iced Tea")
empty_dict["Food"] = coldDrink
elif category == 'Food':
empty_dict["category"] = 'Food'
coldDrink = input("Toast or Sandwich")
empty_dict["Food"] = coldDrink
elif eatOrNo == 'no':
print('cancelled')
else:
print('error')
print(empty_dict)
如前所述,您可以使用字典编写复杂的决策树
冷饮={“冰咖啡”:“冷饮”、“冰茶”:“冷饮”}
热饮={“卡布奇诺”:“热饮”、“速递”:“热饮”}
食物={“火腿”:“food1”,“比萨饼”:“food2”}
eatOrNo=输入(“输入yes以删除no以取消”)
如果eatOrNo.lower()出现在(“yes”,y'):
类别=输入('类型热饮料、冷饮或食品')
如果在(“热饮料”、“热”)中使用category.lower():
类别=输入(“输入您想要的饮料”)
如果热饮料中有以下类别:
…#按照你的意愿保持你的巢穴行为
其他:
打印(“我们菜单上还没有!”
elif category.lowercase()在(“冷饮”、“冷”)中:
... #重复热饮中的相同步骤
elif category.lowercase()=“食品”:
...
elif eatOrNo==“否”:
打印('已取消')
其他:
打印(“错误”)
您应该看看字符串方法,这里有两个Python3的链接,其中包含Python3中字符串方法的一些教程和示例
正确地识别,这样有点让人困惑。顺便说一句,你可以使用字典。如何实现字典?字典键值会根据用户输入动态生成吗?谢谢。我可以用嵌套的字典结构来实现这一点,因为我将遍历它。如果是这样,如何使用上面的代码添加它。。。订单-->类别-->产品-->大小-->数量