如何在Python中将'1 + 2'转换为int

时间:2016-12-07 02:30:26

标签: python string integer int

例如,如果我有:

x = '12'
print(int(x))

会将x转换为字符串中的整数。

如果我有:

x = '1+2'

我想要3作为输出,我怎么能解决它,因为+无法直接转换成int?

3 个答案:

答案 0 :(得分:3)

使用literal_eval比使用eval更安全。 literal_eval安全地计算表达式节点或包含python表达式的字符串。

import ast
x = ast.literal_eval('1+2')

答案 1 :(得分:0)

您可以使用eval函数来完成此任务;但是,应该注意的是,允许对eval函数进行未经过无限制的输入会带来很大的安全风险。这是一个例子:

annot1=[(402L, u"[It's very seldom that you're blessed to find your equal]"), 
        (415L, u'[He very seldom has them in this show or his movies]')]
print [a[1].strip('[]').encode('utf-8').split() for a in annot1]

答案 2 :(得分:-1)

您可以在这里使用eval(expression[, globals[, locals]]) 用法为 eval('1+2') 3 因此x = '1 + 2' print(eval(x))