Python前缀表达式求值
时间: 2024-04-06 11:27:11 浏览: 247
Python中的前缀表达式求值可以通过递归和栈来实现。前缀表达式也被称为波兰表达式,它将运算符放在操作数之前。
下面是一个示例代码,用于解析和求值前缀表达式:
```python
def evaluate_prefix(expression):
if len(expression) == 0:
return None
# 获取当前操作符
operator = expression[0]
# 如果是数字,则直接返回
if operator.isdigit():
return int(operator)
# 递归求解左右子表达式
left_expression = expression[1:]
right_expression = expression[len(left_expression) + 1:]
left_operand = evaluate_prefix(left_expression)
right_operand = evaluate_prefix(right_expression)
# 根据操作符进行计算
if operator == '+':
return left_operand + right_operand
elif operator == '-':
return left_operand - right_operand
elif operator == '*':
return left_operand * right_operand
elif operator == '/':
return left_operand / right_operand
# 测试代码
prefix_expression = ['+', '*', '2', '3', '4']
result = evaluate_prefix(prefix_expression)
print(result)
```
这段代码中,我们首先判断当前操作符是否为数字,如果是数字则直接返回。如果不是数字,则递归求解左右子表达式,并根据操作符进行计算。最后返回计算结果。
阅读全文