例如,如果我有:
x = '12'
print(int(x))
会将x
转换为字符串中的整数。
如果我有:
x = '1+2'
我想要3作为输出,我怎么能解决它,因为+
无法直接转换成int?
答案 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))