欢迎访问宙启技术站
智能推送

应用Python函数实现简单计算器

发布时间:2023-07-02 19:25:50

计算器是一种用来进行数学运算的工具,通过输入一系列数字和运算符,计算器能够返回结果。在本文中,我们将使用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。

这是一个简单的计算器函数示例。你可以根据需要进行扩展,添加更多的运算符和功能。希望这个例子能给你带来一些帮助!