获得字符串的结果?

时间:2016-11-13 20:31:28

标签: python

好吧,我们说我有一个字符串s = '5 + 7'

是否可以获得此字符串的结果? (应该是12)

我已尝试使用int(s),但会出错

2 个答案:

答案 0 :(得分:5)

你正在寻找eval:

>>> s = '5 + 7'
>>> eval(s)
12

小心不要在不受信任的代码上运行它,因为恶意方可以使用它在您的系统上运行任意代码。例如,如果用户可以使s等于"__import__('os').execve('/bin/sh',[],{})",那么eval(s)将为用户提供计算机上的shell。

答案 1 :(得分:2)

这样做的安全方式(而不是eval()功能)是使用ast库:

import ast

ast.literal_eval('5 + 7')
# -> 12