Python 使用用户输入建立订购商品的决策树

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")

我正在尝试编程一个决策树,以允许客户根据他们的输入订购商品。到目前为止,我已经设计了一个嵌套的if-elif条件结构来决定客户是否要订购-->什么样的订单类别--?该类别的什么产品-->什么尺寸-->什么数量

下面是一个结构示例,如果我继续这个过程,它将变得更加嵌套。我的问题是,这是否可以通过决策树数据结构实现,例如收集用户输入的字典,并使用递归算法遍历该字典以打印订单。如果是,这将如何编码

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中字符串方法的一些教程和示例



正确地识别,这样有点让人困惑。顺便说一句,你可以使用字典。如何实现字典?字典键值会根据用户输入动态生成吗?谢谢。我可以用嵌套的字典结构来实现这一点,因为我将遍历它。如果是这样,如何使用上面的代码添加它。。。订单-->类别-->产品-->大小-->数量