【Python】简单计算器实现(三)
发布人:shili8
发布时间:2024-12-25 15:55
阅读次数:0
**Python 实现的简单计算器(三)**
在前两篇文章中,我们已经实现了一个基本的计算器,支持加、减、乘、除四种运算。然而,在实际应用中,我们可能还需要更多功能来满足用户的需求。在本文中,我们将继续扩展我们的计算器,添加新的功能和操作。
###1. 添加新功能首先,让我们思考一下,我们想要在计算器中添加哪些新功能。一些常见的需求包括:
* 支持小数点运算* 支持指数运算(如2^3)
* 支持对数运算(如log(10))
* 支持平方根运算这些功能看起来很简单,但它们确实需要我们进行一些额外的工作。
###2. 实现小数点运算首先,我们来实现小数点运算。这个功能主要涉及处理小数点的位置和符号。
def add_decimal(num1, num2): # 将两个数字转换为字符串 str_num1 = str(num1) str_num2 = str(num2) # 找到小数点的位置 pos1 = str_num1.find('.') pos2 = str_num2.find('.') # 如果有一个或两个数字没有小数点,则添加小数点并将其移动到正确的位置 if pos1 == -1: str_num1 += '.' pos1 = len(str_num1) -1 if pos2 == -1: str_num2 += '.' pos2 = len(str_num2) -1 # 将小数点移动到正确的位置 num1 = float(str_num1) num2 = float(str_num2) return num1 + num2
###3. 实现指数运算接下来,我们来实现指数运算。这个功能主要涉及处理指数符号和底数。
def power(num1, num2): # 将两个数字转换为字符串 str_num1 = str(num1) str_num2 = str(num2) # 找到指数符号的位置 pos = str_num2.find('^') # 如果没有找到指数符号,则返回错误信息 if pos == -1: return "Error: No '^' found." # 将底数和指数分离出来 base = float(str_num1) exponent = float(str_num2[:pos]) power = float(str_num2[pos +1:]) # 计算结果 result = base ** (exponent * power) return result
###4. 实现对数运算接着,我们来实现对数运算。这个功能主要涉及处理对数的底数和输入值。
def log(num1, num2): # 将两个数字转换为字符串 str_num1 = str(num1) str_num2 = str(num2) # 找到对数符号的位置 pos = str_num2.find('log') # 如果没有找到对数符号,则返回错误信息 if pos == -1: return "Error: No 'log' found." # 将底数和输入值分离出来 base = float(str_num1) input_value = float(str_num2[pos +3:]) # 计算结果 result = math.log(input_value) / math.log(base) return result
###5. 实现平方根运算最后,我们来实现平方根运算。这个功能主要涉及处理输入值。
def sqrt(num1): # 将数字转换为字符串 str_num1 = str(num1) # 计算结果 result = math.sqrt(float(str_num1)) return result
###6. 综合所有功能现在,我们已经实现了所有的功能。我们可以将它们组合起来,创建一个完整的计算器。
def calculator(): while True: print("Simple Calculator") print("1. Addition") print("2. Subtraction") print("3. Multiplication") print("4. Division") print("5. Exponentiation") print("6. Logarithm") print("7. Square Root") print("8. Decimal Point") choice = input("Enter your choice (1-8): ") if choice == '1': num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) result = add(num1, num2) print(f"{num1} + {num2} = {result}") elif choice == '2': num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) result = subtract(num1, num2) print(f"{num1} - {num2} = {result}") elif choice == '3': num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) result = multiply(num1, num2) print(f"{num1} * {num2} = {result}") elif choice == '4': num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) if num2 !=0: result = divide(num1, num2) print(f"{num1} / {num2} = {result}") else: print("Error: Division by zero is not allowed.") elif choice == '5': num1 = float(input("Enter base number: ")) num2 = float(input("Enter exponent: ")) result = power(num1, num2) print(f"{num1} ^ {num2} = {result}") elif choice == '6': num1 = float(input("Enter input value: ")) num2 = float(input("Enter base number: ")) result = log(num1, num2) print(f"log({num1}) / log({num2}) = {result}") elif choice == '7': num1 = float(input("Enter input value: ")) result = sqrt(num1) print(f"sqrt({num1}) = {result}") elif choice == '8': num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) result = add_decimal(num1, num2) print(f"{num1} + {num2} = {result}") else: print("Invalid choice. Please choose again.") calculator()
###7. 总结在本文中,我们实现了一个简单的计算器,支持加、减、乘、除四种运算,以及小数点、指数、对数和平方根等功能。我们使用Python语言编写了所有的函数,并将它们组合起来,创建了一个完整的计算器。