SymPy - Abfragen

Das Annahmenmodul im SymPy-Paket enthält Tools zum Extrahieren von Informationen zu Ausdrücken. Das Modul definiert zu diesem Zweck die Funktion ask ().

sympy.assumptions.ask(property)

Die folgenden Eigenschaften bieten nützliche Informationen zu einem Ausdruck:

algebraic(x)

Um algebraisch zu sein, muss eine Zahl eine Wurzel einer Nicht-Null-Polynomgleichung mit rationalen Koeffizienten sein. √2 weil √2 eine Lösung für x2 - 2 = 0 ist, also algebraisch.

complex(x)

Prädikat für komplexe Zahlen. Es ist genau dann wahr, wenn x zur Menge der komplexen Zahlen gehört.

composite(x)

Das von ask (Q.composite (x)) zurückgegebene Prädikat für zusammengesetzte Zahlen ist genau dann wahr, wenn x eine positive ganze Zahl ist und mindestens einen anderen positiven Divisor als 1 und die Zahl selbst hat.

even, odd

Die Rückgabe ask () von true für x befindet sich in der Menge der geraden Zahlen bzw. der Menge der ungeraden Zahlen.

imaginary

Diese Eigenschaft repräsentiert ein Prädikat für eine imaginäre Zahl. Es ist wahr, wenn x als reelle Zahl multipliziert mit der imaginären Einheit I geschrieben werden kann.

integer

Diese von Q.integer (x) zurückgegebene Eigenschaft gibt true von x zurück und gehört zu einer Menge gerader Zahlen.

rational, irrational

Q.irrational (x) ist genau dann wahr, wenn x eine reelle Zahl ist, die nicht als Verhältnis von ganzen Zahlen ausgedrückt werden kann. Zum Beispiel ist pi eine irrationale Zahl.

positive, negative

Prädikate, um zu überprüfen, ob die Zahl positiv oder negativ ist

zero, nonzero

Prädikate zum Teufel, ob eine Zahl Null ist oder nicht

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