利用栈四则运算答题系统Python
时间: 2024-02-16 13:31:23 浏览: 59
用栈实现四则运算
以下是一个简单的四则运算答题系统Python代码,利用栈实现了计算表达式的功能。
```python
class Stack:
def __init__(self):
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 is_empty(self):
return len(self.items) == 0
class Calculator:
def __init__(self):
self.stack = Stack()
def calculate(self, expr):
for token in expr:
if token.isdigit():
self.stack.push(int(token))
else:
op1 = self.stack.pop()
op2 = self.stack.pop()
if token == '+':
self.stack.push(op2 + op1)
elif token == '-':
self.stack.push(op2 - op1)
elif token == '*':
self.stack.push(op2 * op1)
elif token == '/':
self.stack.push(op2 / op1)
return self.stack.pop()
if __name__ == '__main__':
calculator = Calculator()
expr = input('请输入表达式:').split()
result = calculator.calculate(expr)
print(f'计算结果为:{result}')
```
这个程序要求用户输入一个包含数字和运算符的表达式,然后使用栈来计算表达式的结果。程序首先创建一个名为`Stack`的类来实现栈的功能,然后创建一个名为`Calculator`的类来实现计算器的功能。`Calculator`类包含一个名为`stack`的栈对象,以及一个名为`calculate`的方法,用于计算表达式的结果。
在`calculate`方法中,程序首先遍历表达式中的每个字符,如果是数字则将其转换为整数并压入栈中,如果是运算符则弹出栈顶的两个数字进行计算,然后将计算结果压入栈中。最后,`calculate`方法返回栈的最后一个元素,即为计算结果。
在程序的主函数中,首先创建一个`Calculator`对象,然后要求用户输入一个表达式,使用`split`方法将表达式拆分成数字和运算符的列表,然后调用`calculate`方法计算表达式的结果,并打印计算结果。
阅读全文