【问题标题】:solving a math question that characters are in a list with python用python解决一个字符在一个列表中的数学问题
【发布时间】:2021-07-22 11:30:27
【问题描述】:

我有这个列表[5, '*', 10, '/', 22],我想写一个函数来解决这个数学问题并返回答案,但我不知道我该怎么做......

【问题讨论】:

  • 到目前为止你尝试过什么?请阅读How to Ask

标签: python list math calculator calculation


【解决方案1】:

您可以使用eval,但请谨慎使用:

l=[5, '*', 10, '/', 22]
y=eval(''.join([str(x) for x in l]))
print(y)

【讨论】:

  • 但它的答案不正确(数学上)
  • @MossBat,它是正确的。我刚刚用计算器检查了
  • @PCM,你得到了什么答案?
  • 嗯,这就是 calc 显示的内容。实际上,它在技术上是正确的。但可能eval中的除法和乘法搞砸了
【解决方案2】:

首先,使用join 函数创建此表达式的字符串,但确保列表中的所有内容均为<str> 类型

l = [5, '*', 10, '/', 22]
l = [str(x) for x in l]
exp = ''.join(l)

然后使用eval 计算表达式字符串

eval(exp)

【讨论】:

【解决方案3】:

或者更高级的解决方案尝试使用反向波兰表示法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 2023-01-22
    • 1970-01-01
    相关资源
    最近更新 更多