SymPy - 查询

  • 简述

    SymPy 包中的假设模块包含用于提取表达式信息的工具。该模块为此目的定义了 ask() 函数。
    
    
    sympy.assumptions.ask(property)
    
    
    以下属性提供有关表达式的有用信息 -
    algebraic(x)
    要成为代数,数字必须是具有有理系数的非零多项式方程的根。√2 因为 √2 是 x2 − 2 = 0 的解,所以它是代数的。
    complex(x)
    复数谓词。当且仅当 x 属于复数集时,它才是真的。
    composite(x)
    ask(Q.composite(x)) 返回的合数谓词当且仅当 x 是一个正整数并且至少有一个除 1 和数字本身之外的正除数时为真。
    even, odd
    x 的 ask() 返回 true 分别在偶数集合和奇数集合中。
    imaginary
    此属性表示虚数谓词。如果 x 可以写成实数乘以虚数单位 I,则为真。
    integer
    Q.integer(x) 返回的这个属性返回 true 的 x 属于偶数集。
    rational, irrational
    Q.irrational(x) 为真当且仅当 x 是任何不能表示为整数比的实数。例如,pi 是一个无理数。
    positive, negative
    检查数字是正数还是负数的谓词
    zero, nonzero
    判断一个数字是否为零的谓词
    
    
    >>> 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)