【发布时间】:2015-09-22 16:17:40
【问题描述】:
根据logic package 上的sympy 文档,我们可以使用to_cnf/to_dnf 或simplify_logic(expr, form='cnf'/'dnf') 将任意布尔表达式转换为DNF/CNF 形式。
但是在那之后,如何从结果中获取子句呢?
我们可以尝试使用args 字段。但是使用它非常不方便。例如,如果您将像~a 这样的简单表达式转换为 CNF/DNF,那么您将得到 ~a 作为结果,然后调用 (~a).args 返回 (),这不是所寻求的子句! (当然,我可以使用if 检查来解决问题,但这很难看)
【问题讨论】:
标签: python sympy boolean-logic