SymPy - 查询


SymPy 包中的假设模块包含用于提取表达式信息的工具。为此,模块定义了ask()函数。

sympy.assumptions.ask(property)

以下属性提供有关表达式的有用信息 -

代数(x)

为了成为代数,一个数必须是具有有理系数的非零多项式方程的根。√2 因为 √2 是 x2 − 2 = 0 的解,所以它是代数的。

复数(x)

复数谓词。当且仅当 x 属于复数集合时才为真。

复合材料(x)

当且仅当 x 是正整数并且至少有一个除 1 和数字本身之外的正除数时,ask(Q.composite(x)) 返回的合数谓词为 true。

偶数、奇数

当 x 位于偶数集合和奇数集合中时,ask() 分别返回 true。

假想

该属性表示虚数谓词。如果 x 可以写为实数乘以虚数单位 I,则成立。

整数

Q.integer(x) 返回的此属性返回 true,表示 x 属于偶数集。

理性的、非理性的

当且仅当 x 是任何不能表示为整数比的实数时,Q.irrational(x) 才为 true。例如,pi 是一个无理数。

正负

检查数字是正数还是负数的谓词

零、非零

判断数字是否为零

>>> from sympy import * 
>>> x=Symbol('x') 
>>> x=10 
>>> ask(Q.algebraic(pi))
False
>>> ask(Q.complex(5-4*I)), ask( Q.complex(100))
(True, True)
>>> x,y=symbols("x y") 
>>> x,y=5,10 
>>> ask(Q.composite(x)), ask(Q.composite(y))
(False, True)
>>> ask(Q.even(x)), ask(Q.even(y))
(False, True)
>>> x,y= 2*I, 4+5*I 
>>> ask(Q.imaginary(x)), ask(Q.imaginary(y))
(True, False)
>>> x,y=5,10 
>>> ask(Q.even(x)), ask(Q.even(y)), ask(Q.odd(x)), ask(Q.odd(y))
(False, True, True, False)
>>> x,y=5,-5 
>>> ask(Q.positive(x)), ask(Q.negative(y)), ask(Q.positive(x)), ask(Q.negative(y))
(True, True, True, True)
>>> ask(Q.rational(pi)), ask(Q.irrational(S(2)/3))
(False, False)
>>> ask(Q.zero(oo)), ask(Q.nonzero(I))
(False, False)