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)