Skip to main content
 首页 » 编程设计

python之如何使用 eval() 评估 python 字符串 boolean 表达式

2025年05月04日80bjzhanghao

我得到如下的 boolean 表达式:

string = '!True && !(True || False || True)' 

我知道 eval('1+2') 返回 3。但是当我执行 eval(string) 时,它会抛出错误,因为语法无效。

有没有其他方法可以执行上面的表达式?

请您参考如下方法:

!&&|| 都不是有效的 Python 运算符; eval() 只能处理有效的 Python 表达式。

您必须用有效的 Python 版本替换这些表达式;大概!not&&and||,所以您可以只用Python版本替换它们:

eval(string.replace('&&', 'and').replace('||', 'or').replace('!', 'not ')) 

注意 not 之后的空格,因为 Python 需要这个。

更好的方法是不要对这些运算符使用错误的拼写(它们看起来像 Java、JavaScript 或 C)。