我对一个python库感兴趣,它允许符号操作符号,并且可以是任意类型的未知数.
这是我的代码要这样写:
>>> myexpression = symbol("foo") == "bar"
>>> print myexpression
foo == "bar"
>>> print myexpression(foo="quux")
False
>>> myexpression.or_(True)
True
Run Code Online (Sandbox Code Playgroud)
或者粗略估计一下.它实际上甚至不需要那么聪明,我很高兴不得不调用许多额外的内省方法来获得类似上面的东西(例如,即使逻辑重言式没有直接简化)
我的第一直觉是观察同情,但似乎图书馆强烈假设象征变量必须是数字; 我想至少对序列和集合进行操作:
>>> 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'
Run Code Online (Sandbox Code Playgroud)
有没有办法让人们了解非数字变量或其他可以做类似事情的库?
你能把所有东西都映射到 Sympy 符号中吗?例如,在最后一个表达式中:sympy.Eq(sympy.Symbol("foo"), sympy.Symbol("bar"))。或者您的意思是您实际上想编写有关集合关系的逻辑语句?