应用Python函数实现简单计算器
计算器是一种用来进行数学运算的工具,通过输入一系列数字和运算符,计算器能够返回结果。在本文中,我们将使用Python编写一个简单的计算器函数。这个计算器函数将接受一个字符串表达式作为输入,并返回计算后的结果。
首先,我们将定义一个名为calculator的函数。这个函数将接受一个字符串表达式作为参数expression。
在函数内部,我们需要将输入的字符串表达式拆解成数字和运算符。我们可以使用正则表达式和re模块来实现这一步骤。具体来说,我们可以使用re.split()函数将字符串按照运算符进行拆分。拆分后的结果将是一个数字和运算符的列表。
接下来,我们需要创建两个列表:numbers列表用于存储拆解后的数字,operators列表用于存储拆解后的运算符。我们可以使用一个简单的循环来遍历拆分后的列表,并将数字和运算符分别存储到对应的列表中。
然后,我们可以根据运算符的优先级进行运算。在本文中,我们定义了两种运算符,即加法+和减法-。加法的优先级较低,减法的优先级较高。所以我们可以使用两个循环来分别处理减法和加法运算。
首先,我们遍历operators列表,如果运算符是减号,则将对应的数字从numbers列表中取出,并用后面的数字减去它,将结果存储到numbers列表中。这样我们就完成了减法运算。
然后,我们再次遍历operators列表,如果运算符是加号,则将对应的数字从numbers列表中取出,并用后面的数字加上它,将结果存储到numbers列表中。这样我们就完成了加法运算。
最后,我们返回numbers列表中 的元素作为计算结果。
下面是完整的代码实现:
import re
def calculator(expression):
numbers = re.split("[+-]", expression)
operators = re.findall("[+-]", expression)
# Subtraction
i = 0
while i < len(operators):
if operators[i] == '-':
numbers[i+1] = int(numbers[i]) - int(numbers[i+1])
numbers.pop(i)
operators.pop(i)
else:
i += 1
# Addition
i = 0
while i < len(operators):
if operators[i] == '+':
numbers[i+1] = int(numbers[i]) + int(numbers[i+1])
numbers.pop(i)
operators.pop(i)
else:
i += 1
return numbers[0]
# Test the calculator function
result = calculator("2+3-4+5")
print(result) # Output: 6
在这个例子中,我们调用calculator()函数并传入一个字符串表达式"2+3-4+5",最后输出的结果是6,这是因为经过计算后的值为6。
这是一个简单的计算器函数示例。你可以根据需要进行扩展,添加更多的运算符和功能。希望这个例子能给你带来一些帮助!
