SymPy - Consultando
O módulo de suposições no pacote SymPy contém ferramentas para extrair informações sobre expressões. O módulo define a função ask () para este propósito.
sympy.assumptions.ask(property)
As propriedades a seguir fornecem informações úteis sobre uma expressão -
algebraic(x)
Para ser algébrico, um número deve ser a raiz de uma equação polinomial diferente de zero com coeficientes racionais. √2 porque √2 é uma solução para x2 - 2 = 0, então é algébrico.
complex(x)
Predicado de número complexo. É verdade se e somente se x pertencer ao conjunto de números complexos.
composite(x)
O predicado de número composto retornado por ask (Q.composite (x)) é verdadeiro se e somente se x for um inteiro positivo e tiver pelo menos um divisor positivo diferente de 1 e o próprio número.
even, odd
O ask () retorna verdadeiro de x está no conjunto de números pares e no conjunto de números ímpares, respectivamente.
imaginary
Esta propriedade representa o predicado do número imaginário. É verdade se x pode ser escrito como um número real multiplicado pela unidade imaginária I.
integer
Esta propriedade retornada por Q.integer (x) retorna verdadeiro de x pertencer ao conjunto de números pares.
rational, irrational
Q.irrational (x) é verdadeiro se e somente se x for qualquer número real que não pode ser expresso como uma proporção de inteiros. Por exemplo, pi é um número irracional.
positive, negative
Predicados para verificar se o número é positivo ou negativo
zero, nonzero
Predicados para verificar se um número é zero ou não
>>> 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)