用程序实现波兰符号法
时间: 2023-07-01 11:24:00 浏览: 107
一个逆波兰式的生成程序
4星 · 用户满意度95%
好的,以下是Python实现波兰符号法的代码:
```python
def polish_notation(expression):
stack = []
operators = set(['+', '-', '*', '/'])
for token in expression.split():
if token.isdigit():
stack.append(int(token))
elif token in operators:
b = stack.pop()
a = stack.pop()
if token == '+':
stack.append(a + b)
elif token == '-':
stack.append(a - b)
elif token == '*':
stack.append(a * b)
elif token == '/':
stack.append(a // b)
else:
raise ValueError("Invalid token {}".format(token))
return stack.pop()
```
这个函数接受一个字符串表示的表达式,返回其计算结果。例如:
```python
print(polish_notation("3 4 + 5 *"))
# 输出:35
```
这个表达式实际上是 `(3 + 4) * 5` 的波兰符号表示法。
阅读全文