python输入后缀表达式a b +或a b -或a b *或a b /. 输出表达式的算术运算结果或ERROR(当运算无意义时输出ERROR)输入
时间: 2023-08-06 12:03:31 浏览: 154
您好!针对您的问题,我可以给出以下 Python 代码实现:
```python
def evaluate_postfix(expression):
stack = []
operators = set(['+', '-', '*', '/'])
for char in expression:
if char not in operators:
stack.append(int(char))
else:
if len(stack) < 2:
return 'ERROR'
b = stack.pop()
a = stack.pop()
if char == '+':
result = a + b
elif char == '-':
result = a - b
elif char == '*':
result = a * b
elif char == '/':
if b == 0:
return 'ERROR'
result = a / b
stack.append(result)
if len(stack) == 1:
return stack[0]
else:
return 'ERROR'
```
函数 `evaluate_postfix` 接收一个后缀表达式 `expression`,并返回表达式的算术运算结果或 `ERROR`。该函数遍历表达式中的每个字符,如果字符不是运算符,则将其转换为整数并压入栈中;如果字符是运算符,则从栈中弹出两个数进行运算,并将运算结果压回栈中。如果在运算过程中栈中元素数量不足两个,则说明后缀表达式不合法,返回 `ERROR`。在除法运算时,如果除数为零,则也返回 `ERROR`。最后,如果栈中只剩下一个元素,则返回该元素作为表达式的运算结果;否则返回 `ERROR`。
阅读全文