当前位置:实例文章 » 其他实例» [文章]【Python】简单计算器实现(三)

【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语言编写了所有的函数,并将它们组合起来,创建了一个完整的计算器。

相关标签:python开发语言
其他信息

其他资源

Top