有没有办法将字符串“ 1 + 2-3”转换为结果0

时间:2019-12-16 12:34:41

标签: python python-3.x string algorithm integer

我有一个字符串Incorrect syntax near ')'. ,可以将其转换为字符串'1plus2minus3'

是否有一种方法可以通过将此'1+2-3'转换为str()来计算结果?

3 个答案:

答案 0 :(得分:3)

eval()已经有答案,但这是另一个使用re模块的答案,它更安全:

s = '1+2-3'

import re

result = sum(map(int, re.findall(r'[+-]?\d+', s)))
print(result)

打印:

0

答案 1 :(得分:1)

您可以执行以下步骤:

  1. 将字符串plus替换为+,将字符串minus替换为-
  2. 使用eval()eval('1+2-3')将产生0

答案 2 :(得分:0)

快速解决方案是

eval('1+2-3') == 0