【发布时间】:2020-04-08 22:10:43
【问题描述】:
我有一个字符串'1plus2minus3',我可以将它转换成字符串'1+2-3'。
有没有办法通过将此str() 转换为int() 来计算结果?
【问题讨论】:
-
如果字符串来自用户输入,请不要使用
eval,我肯定会在答案中建议
标签: python python-3.x string algorithm integer
我有一个字符串'1plus2minus3',我可以将它转换成字符串'1+2-3'。
有没有办法通过将此str() 转换为int() 来计算结果?
【问题讨论】:
eval,我肯定会在答案中建议
标签: python python-3.x string algorithm integer
eval() 已经有了答案,但这里有另一个答案,使用re 模块,更安全:
s = '1+2-3'
import re
result = sum(map(int, re.findall(r'[+-]?\d+', s)))
print(result)
打印:
0
【讨论】:
您可以执行以下步骤:
plus 替换为+,将minus 替换为-。eval()。 eval('1+2-3') 将导致 0。【讨论】:
快速解决办法是
eval('1+2-3') == 0
【讨论】: