集合中的 Sympy 关系符号
Sympy relational symbol in set
我有一个 FiniteSet 和一个符号,我想将它与一个关系相关联,这样符号就在 FiniteSet 中,sympy 可以吗? symbol in FiniteSet
不是 return 表达式,而是计算它:
>>> from sympy import *
>>> s = FiniteSet(range(0,3))
>>> x = symbols('x')
>>> x in s
False
>>> Eq(x,s)
x == {0, 1, 2}
>>> In(x,s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'In' is not defined
编辑:感谢 ohe 告诉我有关 Contains
的信息。我更新了我的 sympy 版本,顺便说一句,FinitSet 的语法在更新中也发生了变化。我给出了我希望首先工作的小例子以供记录:
>>> from sympy import *
>>> x = symbols('x')
>>> s = FiniteSet(*range(0,3))
>>> init_printing()
>>> Contains(x,s)
x ∈ {0, 1, 2}
您要查找的可能是 Contains
函数。
你的代码对我不起作用。
表达式
x in s
引发异常。
您必须先为 x 赋值。
然后你可以只使用 "in".
像这样:
s = FiniteSet(range(0,3))
x = symbols('x')
x=3
x in s # False
这是完整的设置:
>>> from sympy import *
>>> s=FiniteSet(range(0,3))
>>> x=symbols("x")
>>> x in s
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\lhk\Anaconda3\lib\site-packages\sympy\sets\sets.py", line 497, in __contains__
raise TypeError('contains did not evaluate to a bool: %r' % symb)
TypeError: contains did not evaluate to a bool: Contains(x, {range(0, 3)})
>>> x=3
>>> x in s
False
>>> Contains(x,s)
False
>>>
我有一个 FiniteSet 和一个符号,我想将它与一个关系相关联,这样符号就在 FiniteSet 中,sympy 可以吗? symbol in FiniteSet
不是 return 表达式,而是计算它:
>>> from sympy import *
>>> s = FiniteSet(range(0,3))
>>> x = symbols('x')
>>> x in s
False
>>> Eq(x,s)
x == {0, 1, 2}
>>> In(x,s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'In' is not defined
编辑:感谢 ohe 告诉我有关 Contains
的信息。我更新了我的 sympy 版本,顺便说一句,FinitSet 的语法在更新中也发生了变化。我给出了我希望首先工作的小例子以供记录:
>>> from sympy import *
>>> x = symbols('x')
>>> s = FiniteSet(*range(0,3))
>>> init_printing()
>>> Contains(x,s)
x ∈ {0, 1, 2}
您要查找的可能是 Contains
函数。
你的代码对我不起作用。 表达式
x in s
引发异常。 您必须先为 x 赋值。 然后你可以只使用 "in".
像这样:
s = FiniteSet(range(0,3))
x = symbols('x')
x=3
x in s # False
这是完整的设置:
>>> from sympy import *
>>> s=FiniteSet(range(0,3))
>>> x=symbols("x")
>>> x in s
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\lhk\Anaconda3\lib\site-packages\sympy\sets\sets.py", line 497, in __contains__
raise TypeError('contains did not evaluate to a bool: %r' % symb)
TypeError: contains did not evaluate to a bool: Contains(x, {range(0, 3)})
>>> x=3
>>> x in s
False
>>> Contains(x,s)
False
>>>