【问题标题】:Decision Making from User Input + store results in a list [Open Question]来自用户输入的决策 + 存储结果在列表中 [未决问题]
【发布时间】:2019-02-24 16:52:09
【问题描述】:

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

我正在尝试创建一个软件,当从控制台运行时,它会询问用户是否会选择“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 循环的函数中创建它,或者可能使用字典而不是空列表?

我了解此类问题是否在这里不标准,因此被否决。但这是一个基于我的想法的编程项目,任何形式的信息都可以让我在正确的轨道上思考。

【问题讨论】:

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


    【解决方案1】:

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

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

    对于每个位置,您都提供了可能的选择以及该选择会将您带到哪里,您可以使用位置字典中的键来确定下一步可以做什么。

    在每次迭代中,您都会向用户展示他在那一刻可以做的选择

    choices = exits[current_location]
    

    然后你更新位置

    current_location = exits[current_location][user_choice] 
    

    【讨论】:

    • 我确实喜欢为此使用字典的想法。不幸的是,我几天前才偶然发现它们,因此需要一些时间来学习、实施和实践它们,然后才能完全了解它们在代码库中的工作方式。感谢您的建议,尽管伙计!真的很喜欢这个主意!
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多