设计一款计算器,可根据输入的表达式对两个浮点数数进行加、减、乘、除运算,输入形式为AopB,注意B不等于0,结果保留两位小数。
时间: 2024-11-20 15:43:05 浏览: 20
设计一款这样的计算器需要考虑以下几个步骤:
1. **用户输入解析**:
首先,我们需要创建一个函数或方法来接收用户的输入字符串(例如 "3.5op2.2"),然后提取操作符("op" 后面的字符)以及两个数字(A和B)。
```python
def parse_input(expression):
parts = expression.split('op')
if len(parts) != 2 or float(parts[1]) == 0:
raise ValueError("Invalid input - B must not be zero")
operator = parts[0][-1]
num1 = float(parts[0][:-1])
num2 = float(parts[1])
return operator, num1, num2
```
2. **基本运算函数**:
创建四个单独的函数分别对应加、减、乘、除运算。这些函数接受两个浮点数作为参数,并返回相应的计算结果。
```python
def add(num1, num2):
return round(num1 + num2, 2)
def subtract(num1, num2):
return round(num1 - num2, 2)
def multiply(num1, num2):
return round(num1 * num2, 2)
def divide(num1, num2):
try:
result = num1 / num2
return round(result, 2)
except ZeroDivisionError:
return "Error: Division by zero is not allowed"
```
3. **主程序处理**:
主函数会根据解析的结果选择合适的运算函数并执行。
```python
def calculator(expression):
operator, num1, num2 = parse_input(expression)
if operator == '+':
return add(num1, num2)
elif operator == '-':
return subtract(num1, num2)
elif operator == '*':
return multiply(num1, num2)
else: # 'op' 后跟 '/'
return calculate_division(num1, num2)
def calculate_division(num1, num2):
return divide(num1, num2)
# 示例
expression = "3.5op2.2"
result = calculator(expression)
print(f"{expression} = {result}")
```
阅读全文