用户输入的决策+将结果存储在列表中[未解决的问题]

时间:2019-02-24 16:52:10

标签: python python-3.x if-statement user-input

我是编程的新手,所以我要问的更多是关于如何处理特定问题的建议/指导,而不是要求特定的代码建议。

我正在尝试创建一个软件,当从控制台运行该软件时,它会询问用户是否选择“ a”,“ b”或“ c”。做出选择后,它将结果保存到一个空列表(将使用.append),并根据之前做出的选择,将为用户分支/呈现新选项供您选择。当他们到达决策过程的最后时,它将打印列表,以便用户可以看到他们的选择。

我一直把它像决策树一样思考,并为我制作了一个相当糟糕的图表,以帮助概念化它的结构和规则(例如,选项/选择流入什么)。

enter image description here

如果您单击链接,则可以看到该图。基本上,我在考虑创建一个非常长且丑陋的if-elif-else链,其中包含一些嵌套的if语句,该链将使用条件逻辑,这些条件逻辑将根据用户先前选择的内容为用户提供某些选项。例如,要进入“ c3”,您需要做的就是在开始处选择C,然后遵循c1-> c2-> c3的链。这是一个非常线性的过程。但是,如果您想到达“ ab2”,则用户可以通过以下两种方式到达那里:A-> a2-> ab1-> ab2 B-> b1-> ab1-> ab2;具有更多动态变化。

您将如何构建它?我应该考虑是否有任何特定的事物/概念,例如在While循环的函数中创建此事物/概念,或者可能使用字典而不是空的List?

我知道这种问题在这里是否不是标准问题,因此被否决。但这是一个基于我的想法的程序设计项目,任何使我思考正确的信息都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

我会用字典来组织它,将每个位置与您可以在其中做出的选择联系起来:

exits = {'A' : {'a' : 'A1',
                 'b' : 'A2'},
          'B' : {'a' : 'b1',
                 'b' : 'b2'}
          ...
        }

对于每个位置,您都提供了可能的选择以及该选择将您带到何处,您可以使用地方词典中的键确定下一步可以做什么。

在每次迭代中,您都向用户展示他当时可以做的选择

choices = exits[current_location]

然后您更新职位

current_location = exits[current_location][user_choice]