我正在制作一个 pemdas 求解器程序,但我似乎无法让它求解用户写入程序的方程。我目前的代码是:
def pemdas():
print("type in your pemdas problem.")
prob = int(input())
solve(prob)
print(str(prob))
input()
pemdas()
我正在制作一个 pemdas 求解器程序,但我似乎无法让它求解用户写入程序的方程。我目前的代码是:
def pemdas():
print("type in your pemdas problem.")
prob = int(input())
solve(prob)
print(str(prob))
input()
pemdas()
这实际上是一个比你想象的更难的问题,而且这个问题很难以目前的形式回答。所以这里有一些建议的方法。您应该研究这些并尝试其中一个或多个,然后在遇到麻烦时再提出一个更具体的问题。
可能您最好的选择是使用shunting-yard 算法将表达式转换为后缀,然后使用堆栈来评估表达式。
另一种选择是使用PyParsing。PyParsing 允许您为字符串指定解析规则并将函数分配给某些标记;这将让您在解析阶段计算结果。这将是一种更加抽象的方法。(此外,在他们的示例页面上可能有一些这类事情的好例子。一定要好好看看!)