首页
学习
活动
专区
圈层
工具
发布

问加减法
EN

Stack Overflow用户
提问于 2019-10-01 22:28:48
回答 2查看 105关注 0票数 1

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

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

代码语言:javascript
复制
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)
代码语言:javascript
复制
"1+2" => 3   # input  =  "1+2" and the output of the function would be 3
"-1+21" => 20
"+1-1" => 0
EN

回答 2

Stack Overflow用户

发布于 2019-10-01 22:34:15

查找eval()函数:

代码语言:javascript
复制
>> eq = "2+4-5"
>> eval(eq)
1

正如注释中所说,eval()计算作为Python代码传递的字符串,这有潜在的危险。

票数 3
EN

Stack Overflow用户

发布于 2019-10-01 23:03:22

试试这个:

代码语言:javascript
复制
import re
eq = '+1-1'
ls = [int(i) for i in re.findall('[-+]?[0-9]+', eq)]
res = sum(ls)
print(res)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58187005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档