SymPy - Requête

Le module d'hypothèses du package SymPy contient des outils pour extraire des informations sur les expressions. Le module définit la fonction ask () à cet effet.

sympy.assumptions.ask(property)

Les propriétés suivantes fournissent des informations utiles sur une expression -

algebraic(x)

Pour être algébrique, un nombre doit être la racine d'une équation polynomiale non nulle à coefficients rationnels. √2 car √2 est une solution de x2 - 2 = 0, donc c'est algébrique.

complex(x)

Prédicat de nombre complexe. C'est vrai si et seulement si x appartient à l'ensemble des nombres complexes.

composite(x)

Le prédicat de nombre composé retourné par ask (Q.composite (x)) est vrai si et seulement si x est un entier positif et a au moins un diviseur positif autre que 1 et le nombre lui-même.

even, odd

Le ask () renvoie vrai de x est dans l'ensemble des nombres pairs et l'ensemble des nombres impairs respectivement.

imaginary

Cette propriété représente un prédicat numérique imaginaire. C'est vrai si x peut être écrit comme un nombre réel multiplié par l'unité imaginaire I.

integer

Cette propriété retournée par Q.integer (x) renvoie vrai si x appartient à un ensemble de nombres pairs.

rational, irrational

Q.irrational (x) est vrai si et seulement si x est un nombre réel qui ne peut pas être exprimé sous forme de rapport d'entiers. Par exemple, pi est un nombre irrationnel.

positive, negative

Prédicats pour vérifier si le nombre est positif ou négatif

zero, nonzero

Prédicats pour vérifier si un nombre est zéro ou non

>>> 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)