加减法

时间:2019-10-01 14:28:47

标签: python

我需要返回expression的值(表达式是函数的参数)的帮助。

这是我到目前为止尝试过的。这只是一个带有随机方程的例子,我的计划是了解如何正确求解它,以便以后将其转换为函数

sum = 0
eq = '2+4-5'
string = ""
for x in eq:
    if x in ('+', '-'):
        if x == '+':
            sum += int(string)
        elif x == "-":
            sum -= int(string)
        string = ""
    else:
        string += x
sum += int(string)
print(sum)
"1+2" => 3   # input  =  "1+2" and the output of the function would be 3
"-1+21" => 20
"+1-1" => 0

2 个答案:

答案 0 :(得分:3)

查找eval()函数:

>> eq = "2+4-5"
>> eval(eq)
1

eval()如评论中所述,评估作为Python代码传递的字符串,这有潜在的危险。

答案 1 :(得分:2)

尝试这个:

import re
eq = '+1-1'
ls = [int(i) for i in re.findall('[-+]?[0-9]+', eq)]
res = sum(ls)
print(res)