【问题标题】:Return "None" in the case there is no valid result for any combination of the supplied variables如果提供的变量的任何组合都没有有效结果,则返回“无”
【发布时间】:2020-12-26 20:23:46
【问题描述】:

我正在尝试解决前缀表达式。每当遇到无效的前缀表达式或表达式没有任何有效结果时,我都想返回 None。表达式作为字符串输入。

例如:

expression: -+1 5 3
value: "None"

expression: + 1
value: "None"

我这样做的逻辑是:

    if (expression[-1] in ops or expression [-2] in ops ):#is this correct?
        return "None"

ops 包含 {+,-,*,/}

我该怎么做?

编辑:

ops={
    "+":add,
    "-":sub,
    "*":mul,
    "/":div
}

【问题讨论】:

  • 你能再解释一下你的问题吗,什么是 ops 变量,它是某种包含有效表达式的结构吗?
  • @Stefanc 检查编辑。
  • None 与字符串 "None" 不同。您还提供了“无效”输入的示例,但没有提供“有效”输入的示例,因此根据您提供的示例,似乎简单的答案是将 return None 放在函数的开头。跨度>

标签: python expression prefix


【解决方案1】:

None 是一种数据类型,但您返回 "None" 字符串而不是 None 数据,省略引号我也无法理解输入,但如果它是整数;整数是不可迭代的,所以你不能对它们进行切片

【讨论】:

  • 输入是一个字符串
  • @SharinSung 无论如何我认为它不能处理所有条件,但对于你给出的 2 个表达式来说似乎没问题
【解决方案2】:

您的ops 是一本字典,其中您将操作作为键。

if expressions not in ops:
   return None

当它在字典 ops 的键中找不到您的 expressions 时,将返回 None

希望这就是你的意思。

【讨论】:

    猜你喜欢
    • 2020-09-11
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2017-11-24
    • 2011-04-28
    相关资源
    最近更新 更多