阅读量:0
在本文中,我们将学习如何在Python中实现一个简单的计算器。这个计算器将支持加、减、乘、除四种基本运算。我们将使用Python的内置函数eval()
来实现这个功能。
1. 创建一个函数calculate()
首先,我们需要创建一个名为calculate()
的函数,该函数接受一个字符串作为输入,然后使用eval()
函数计算字符串中的表达式,并返回结果。
def calculate(expression: str) -> float: try: result = eval(expression) return result except Exception as e: print(f"无法计算表达式:{expression},错误信息:{e}") return None
2. 实现加法和减法
接下来,我们需要实现加法和减法功能。我们可以通过在calculate()
函数中添加两个辅助函数来实现这个功能。这两个辅助函数分别用于处理加法和减法运算。
def add(a: float, b: float) -> float: return a + b def subtract(a: float, b: float) -> float: return a - b
3. 实现乘法和除法
现在我们需要实现乘法和除法功能。我们可以通过在calculate()
函数中添加四个辅助函数来实现这个功能。这四个辅助函数分别用于处理乘法和除法运算。注意,我们需要确保除数不为0。
def multiply(a: float, b: float) -> float: return a * b def divide(a: float, b: float) -> float: if b == 0: print("除数不能为0") return None return a / b
4. 实现完整的计算器功能
最后,我们需要将所有这些功能组合在一起,以实现完整的计算器功能。我们可以创建一个名为calculator()
的函数,该函数接受用户输入的表达式,并调用相应的辅助函数来计算结果。
def calculator() -> None: expression = input("请输入一个表达式(例如:1 + 2):") tokens = expression.split() num1 = float(tokens[0]) if "+" not in expression and "-" not in expression else None num2 = float(tokens[2]) if "*" not in expression and "/" not in expression else None operator = tokens[1] if "+" in expression or "-" in expression else None if num1 is not None and operator is not None and num2 is not None: if operator == "+": result = add(num1, num2) elif operator == "-": result = subtract(num1, num2) elif operator == "*": result = multiply(num1, num2) elif operator == "/": result = divide(num1, num2) else: print("无效的运算符") return None print(f"结果是:{result}")
5. 测试计算器功能
现在我们可以测试我们的计算器功能了。让我们尝试一些简单的测试用例。
if __name__ == "__main__": while True: calculator() operation = input("是否继续计算?(输入Y继续,输入N退出):") if not hasattr(calculator, "exit") else calculator.exit()