Python 基于sympy的布尔运算

Python 基于sympy的布尔运算,python,numpy,sympy,Python,Numpy,Sympy,我在搜索一个可以进行布尔运算的库时发现了Symphy。我编写了以下程序并执行布尔运算。我的结局是例外。 错误: ['SI', 'D', 'SE', 'RS'] #Need to truth table for 4 element item-op (!SE&D&RS)|(SE&SI) #This operation need to perform Traceback (most recent call last): File "next_state.py", li

我在搜索一个可以进行布尔运算的库时发现了Symphy。我编写了以下程序并执行布尔运算。我的结局是例外。

错误:

['SI', 'D', 'SE', 'RS']   #Need to truth table for 4 element
item-op (!SE&D&RS)|(SE&SI) #This operation need to perform
Traceback (most recent call last):
  File "next_state.py", line 21, in <module>
    expr = sympy.sympify(item_op)
  File "/.local/lib/python2.7/site-packages/sympy/core/sympify.py", line 297, in sympify
    raise SympifyError('could not parse %r' % a, exc)
sympy.core.sympify.SympifyError: Sympify of expression 'could not parse u'(!SE&D&RS)|(SE&SI)'' failed, because of exception being raised:
TokenError:
['SI',D',SE',RS']#需要4个元素的真值表
项目op(!SE&D&RS)|(SE&SI)#需要执行此操作
回溯(最近一次呼叫最后一次):
文件“next_state.py”,第21行,在
expr=sympy.sympify(项目_op)
文件“/.local/lib/python2.7/site packages/sympy/core/sympify.py”,第297行,在sympify中
引发SympifyError('无法分析%r'%a,exc)
sympy.core.sympify.SympifyError:表达式“无法分析u”(!SE&D&RS)|(SE&SI)“”的sympify失败,因为引发了异常:
令牌错误:

我想
在表达式中表示not(即逻辑补码)。在将字符串传递到
sympy.sympify
之前,将其更改为
~

In [15]: sympy.sympify("(~SE&D&RS)|(SE&SI)")
Out[15]: Or(And(D, Not(SE), RS), And(SE, SI))

我猜
在表达式中表示not(即逻辑补码)。在将字符串传递到
sympy.sympify
之前,将其更改为
~

In [15]: sympy.sympify("(~SE&D&RS)|(SE&SI)")
Out[15]: Or(And(D, Not(SE), RS), And(SE, SI))

我猜
在表达式中表示not(即逻辑补码)。在将字符串传递到
sympy.sympify
之前,将其更改为
~

In [15]: sympy.sympify("(~SE&D&RS)|(SE&SI)")
Out[15]: Or(And(D, Not(SE), RS), And(SE, SI))

我猜
在表达式中表示not(即逻辑补码)。在将字符串传递到
sympy.sympify
之前,将其更改为
~

In [15]: sympy.sympify("(~SE&D&RS)|(SE&SI)")
Out[15]: Or(And(D, Not(SE), RS), And(SE, SI))

异常堆栈跟踪将有助于lotAgree。很抱歉,信息不完整。异常堆栈跟踪有助于达成一致。很抱歉,信息不完整。异常堆栈跟踪有助于达成一致。很抱歉,信息不完整。异常堆栈跟踪有助于达成一致。抱歉,信息不完整是的,不幸的是SymPy仅限于Python运算符,Python不允许您定义
。但是,如果您的输入是字符串,那么简单的
.replace(“!”、“~”)
就可以了。是的,不幸的是,SymPy仅限于Python运算符,Python不允许您定义
。但是,如果您的输入是字符串,那么简单的
.replace(“!”、“~”)
就可以了。是的,不幸的是,SymPy仅限于Python运算符,Python不允许您定义
。但是,如果您的输入是字符串,那么简单的
.replace(“!”、“~”)
就可以了。是的,不幸的是,SymPy仅限于Python运算符,Python不允许您定义
。但是,如果您的输入是字符串,一个简单的
.replace(“!”、“~”)
就可以了。