【发布时间】:2012-11-08 06:08:36
【问题描述】:
所以我试图弄清楚如何检测数学表达式中操作数和运算的数量
例如:1+2*9/2
我试图使用函数将操作数和操作分离成它们自己的形式,因为我们必须检查必须执行多少操作以及以正确的顺序 (PEDMAS)。
我已经取了方程并取出了所有的空格,现在我必须找到方程中操作数和运算的数量,然后使用 return 来找到用户给定数学表达式的答案。
有什么建议吗?
【问题讨论】:
-
您必须将其解析为抽象语法树 (AST) 才能确定。
-
我建议你从中缀到后缀的转换开始。然后,您可以使用堆栈和运算符优先级来评估表达式。显然,这不会为您提供类型安全(维度分析),但可以帮助您前进。参考:scriptasylum.com/tutorials/infix_postfix/algorithms/…
-
谢谢,这似乎有助于我更多地了解操作顺序
标签: python calculator operation operand