我感兴趣的是一个Python库,允许象征性的操作,其中的符号,可以是任意类型的未知数。对非数字类型符号处理
这是我想写代码:
>>> myexpression = symbol("foo") == "bar"
>>> print myexpression
foo == "bar"
>>> print myexpression(foo="quux")
False
>>> myexpression.or_(True)
True
或一些粗略的估计。它实际上并没有必要一定是聪明的,我会很开心就好不必调用了很多额外的内省方法来得到类似上面的(例如,即使逻辑同义反复不能直接简化)
我的第一本能是看sympy,但看起来库很强烈地假设符号变量必须是数字;我想对序列和组每组至少操作:
>>> myexpression = sympy.Eq(sympy.Symbol("foo"), 5)
>>> myexpression
foo == 5
>>> myexpression = sympy.Eq(sympy.Symbol("foo"), "bar")
Traceback (most recent call last):
...
sympy.core.sympify.SympifyError: SympifyError: 'bar'
有没有办法让sympy了解非数字变量,或另一个库,可以做类似的事情?
怎么样使用一个或多个字典以'sympy.Symbol'对象作为键? – wberry