用python通过前缀表达式写四则运算系统
时间: 2023-12-15 15:03:36 浏览: 123
编译四则运算表达式
以下是一个使用前缀表达式进行四则运算的Python程序:
```python
# 定义四个基本运算函数
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
return a / b
# 定义操作符和操作函数的映射关系
operators = {
'+': add,
'-': subtract,
'*': multiply,
'/': divide
}
# 定义前缀表达式求值函数
def evaluate_prefix_expression(expression):
stack = []
for token in reversed(expression.split()):
if token.isdigit():
stack.append(int(token))
else:
a = stack.pop()
b = stack.pop()
operator = operators[token]
stack.append(operator(a, b))
return stack.pop()
# 测试
expression = '* + 2 3 4'
result = evaluate_prefix_expression(expression)
print(result) # 输出14
```
在这个程序中,我们首先定义了四个基本运算函数:`add`、`subtract`、`multiply`和`divide`。然后,我们定义了一个名为`operators`的映射关系,将操作符和对应的操作函数关联起来。
接下来,我们定义了一个名为`evaluate_prefix_expression`的函数,用于对前缀表达式求值。该函数首先将表达式拆分成一个个操作数和操作符,并将它们压入一个栈中。然后,该函数从栈中取出操作数和操作符,并调用对应的操作函数进行计算。最终,该函数返回栈顶元素,即为表达式的计算结果。
最后,我们使用`evaluate_prefix_expression`函数对一个前缀表达式进行求值,并输出结果。在本例中,我们计算的是`* + 2 3 4`,其结果应为14。
阅读全文