帮我写一个能实现加减乘除,括号,取余的计算器程序
时间: 2024-02-25 12:58:54 浏览: 71
好的,我可以帮你编写一个能实现加减乘除、括号和取余的计算器程序。以下是代码示例:
```python
# 定义计算函数
def calculate(expression):
expression = expression.replace(' ', '') # 去掉空格
stack = []
num = 0
op = '+'
for i, char in enumerate(expression):
if char.isdigit():
num = num * 10 + int(char)
if not char.isdigit() or i == len(expression) - 1:
if op == '+':
stack.append(num)
elif op == '-':
stack.append(-num)
elif op == '*':
stack[-1] *= num
elif op == '/':
stack[-1] //= num
elif op == '%':
stack[-1] %= num
num = 0
op = char
if char == '(':
stack.append('(')
op = '+'
if char == ')':
sub_total = 0
while stack[-1] != '(':
sub_total += stack.pop()
stack.pop()
if op == '+':
stack.append(sub_total)
elif op == '-':
stack.append(-sub_total)
elif op == '*':
stack[-1] *= sub_total
elif op == '/':
stack[-1] //= sub_total
elif op == '%':
stack[-1] %= sub_total
num = 0
op = char
return sum(stack)
# 测试计算函数
print(calculate('1 + 2 * 3')) # 7
print(calculate('(1 + 2) * 3')) # 9
print(calculate('(1 + 2) % 3')) # 0
```
这个计算器程序可以接受一个字符串表达式作为输入,返回计算结果。在表达式中,可以包含加减乘除、括号和取余等运算符,可以使用整数和小数进行计算。
阅读全文