- SymPy Tutorial
- SymPy - Home
- SymPy - Introduction
- SymPy - Installation
- SymPy - Symbolic Computation
- SymPy - Numbers
- SymPy - Symbols
- SymPy - Substitution
- SymPy - sympify() function
- SymPy - evalf() function
- SymPy - Lambdify() function
- SymPy - Logical Expressions
- SymPy - Querying
- SymPy - Simplification
- SymPy - Derivative
- SymPy - Integration
- SymPy - Matrices
- SymPy - Function class
- SymPy - Quaternion
- SymPy - Solvers
- SymPy - Plotting
- SymPy - Entities
- SymPy - Sets
- SymPy - Printing
- SymPy Useful Resources
- SymPy - Quick Guide
- SymPy - Useful Resources
- SymPy - Discussion
SymPy - Querying
The assumptions module in SymPy package contains tools for extracting information about expressions. The module defines ask() function for this purpose.
sympy.assumptions.ask(property)
Following properties provide useful information about an expression −
algebraic(x)
To be algebraic, a number must be a root of a non-zero polynomial equation with rational coefficients. √2 because √2 is a solution to x2 − 2 = 0, so it is algebraic.
complex(x)
Complex number predicate. It is true if and only if x belongs to the set of complex numbers.
composite(x)
Composite number predicate returned by ask(Q.composite(x)) is true if and only if x is a positive integer and has at least one positive divisor other than 1 and the number itself.
even, odd
The ask() returns true of x is in the set of even numbers and set of odd numbers respectively.
imaginary
This property represents Imaginary number predicate. It is true if x can be written as a real number multiplied by the imaginary unit I.
integer
This property returned by Q.integer(x) returns true of x belong to set of even numbers.
rational, irrational
Q.irrational(x) is true if and only if x is any real number that cannot be expressed as a ratio of integers. For example, pi is an irrational number.
positive, negative
Predicates to check if number is positive or negative
zero, nonzero
Predicates to heck if a number is zero or not
>>> 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)