思路:
先将中缀表达式改为后缀表达式,这样就不用考率需要使用括号来标识操作符的优先级。后缀表达式的计算按 操作符 从左到右出现的顺序依次执行(不考虑运算符之间的优先级),对于计算机而言是比较简单的结构。
然后实现后缀表达式的计算。需要注意的是:在处理后缀表达式(RPN)时存在一个问题,特别是结果类型的处理。具体来说,你在 evalRPN 中最后将结果强制转换为整数 int(result),这将导致结果丢失分数部分。
为了解决这个问题,你可以将 result 保持为 Fraction 类型,而不是转换为整数。
主要组成部分
-
导入模块:
- 从
operator
模块导入add
,sub
,mul
等,用于基本的算术操作。
- 从