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

