SymPy - 查询
SymPy中包含假设模块用于从表达式中提取信息. 此模块为此目的定义了 ask() 函数.
sympy.assumptions.ask(property)
下述性质对于一个表达式提供了有用的信息 −
代数数 algebraic(x)
所谓代数数, 必须是一个有理系数多项式的非零根. 因为是方程
的一个根, 因此√2 它是代数数.
复数 complex(x)
判断x是否是复数, 当且仅当x输入复平面时返回True.
合数 composite(x)
调用 ask(Q.composite(x)) 判断x是否合数(非素数), 返回 true 当且仅当 x 是一个正整数而且至少有一个不是1和自己之外的因数.
偶数 even, 奇数 odd
函数 ask() 返回True 如果 x 分别在偶数集合或者奇数集合之内.
纯虚数 imaginary
这个性质进行虚数推断. 如果是一个实数和虚数单位I相乘则返回 true.
整数 integer
Q.integer(x) 返回 true 如果 x 属于整数集合.
有理数 rational, 无理数 irrational
Q.irrational(x) 返回 true 当且仅当 x 是实数而且不能表示为两个整数的比值. 例如, 是一个无理数.
正数 positive, 负数 negative
判断一个数是正或者负. 注意0既不是正也不是负.
零 zero, 非零 nonzero
判断一个数是0或者非零
>>> 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)) (T