-1

可能重复:
我正在制作一个 PEMDAS 求解器,但不知道该写什么

我正在制作一个 pemdas 求解器程序,但我似乎无法让它求解用户写入程序的方程。我目前的代码是:

def pemdas():
     print("type in your pemdas problem.")
     prob = int(input())
     solve(prob)
     print(str(prob))
     input()
pemdas()
4

1 回答 1

5

这实际上是一个比你想象的更难的问题,而且这个问题很难以目前的形式回答。所以这里有一些建议的方法。您应该研究这些并尝试其中一个或多个,然后在遇到麻烦时再提出一个更具体的问题。

可能您最好的选择是使用shunting-yard 算法将表达式转换为后缀,然后使用堆栈来评估表达式。

另一种选择是使用PyParsing。PyParsing 允许您为字符串指定解析规则并将函数分配给某些标记;这将让您在解析阶段计算结果。这将是一种更加抽象的方法。(此外,在他们的示例页面上可能有一些这类事情的好例子。一定要好好看看!)

于 2012-11-01T19:57:26.260 回答