用python的栈实现算术问题
时间: 2023-04-08 19:04:11 浏览: 72
可以回答这个问题。使用Python的栈可以实现算术问题,具体实现方法可以参考以下代码:
```python
# 定义一个栈类
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
# 定义一个函数,用栈实现算术问题
def evaluate_postfix(postfix_expression):
operand_stack = Stack()
token_list = postfix_expression.split()
for token in token_list:
if token.isdigit():
operand_stack.push(int(token))
else:
operand2 = operand_stack.pop()
operand1 = operand_stack.pop()
result = do_math(token, operand1, operand2)
operand_stack.push(result)
return operand_stack.pop()
# 定义一个函数,用于计算算术问题
def do_math(op, op1, op2):
if op == "+":
return op1 + op2
elif op == "-":
return op1 - op2
elif op == "*":
return op1 * op2
else:
return op1 / op2
# 测试代码
print(evaluate_postfix("7 8 + 3 2 + /"))
```
以上代码实现了用Python的栈实现算术问题的功能。