SymPy - symbole
Symboljest najważniejszą klasą w bibliotece symPy. Jak wspomniano wcześniej, obliczenia symboliczne są wykonywane za pomocą symboli. Zmienne SymPy są obiektami klasy Symbols.
Argumentem funkcji Symbol () jest łańcuch zawierający symbol, który można przypisać do zmiennej.
>>> from sympy import Symbol
>>> x=Symbol('x')
>>> y=Symbol('y')
>>> expr=x**2+y**2
>>> expr
Powyższy fragment kodu daje wynik odpowiadający poniższemu wyrażeniu -
$x^2 + y^2$
Symbol może składać się z więcej niż jednego alfabetu.
>>> s=Symbol('side')
>>> s**3
Powyższy fragment kodu daje wynik odpowiadający poniższemu wyrażeniu -
$side^3$
SymPy ma również plik Symbols()funkcja, która może definiować wiele symboli jednocześnie. Ciąg zawiera nazwy zmiennych oddzielone przecinkiem lub spacją.
>>> from sympy import symbols
>>> x,y,z=symbols("x,y,z")
W module abc SymPy wszystkie alfabety łacińskie i greckie są zdefiniowane jako symbole. Dlatego zamiast tworzenia wystąpienia obiektu Symbol ta metoda jest wygodna.
>>> from sympy.abc import x,y,z
Jednak nazwy C, O, S, I, N, E i Qto predefiniowane symbole. Ponadto symbole z więcej niż jednym alfabetem nie są zdefiniowane w module abc, dla którego należy używać obiektu Symbol jak powyżej. Moduł abc definiuje specjalne nazwy, które mogą wykrywać definicje w domyślnej przestrzeni nazw SymPy. clash1 zawiera pojedyncze litery, a clash2 ma wieloliterowe symbole kolizji
>>> from sympy.abc import _clash1, _clash2
>>> _clash1
Dane wyjściowe powyższego fragmentu kodu są następujące -
{'C': C, 'O': O, 'Q': Q, 'N': N, 'I': I, 'E': E, 'S': S}
>>> _clash2
Dane wyjściowe powyższego fragmentu kodu są następujące -
{'beta': beta, 'zeta': zeta, 'gamma': gamma, 'pi': pi}
Symbole indeksowane można zdefiniować za pomocą składni podobnej do funkcji range (). Zakresy są oznaczone dwukropkiem. Typ zakresu jest określany przez znak po prawej stronie dwukropka. Jeśli itr jest cyfrą, wszystkie ciągłe cyfry po lewej stronie są traktowane jako nieujemna wartość początkowa. Wszystkie sąsiadujące cyfry po prawej stronie są traktowane jako o 1 większe od wartości końcowej.
>>> from sympy import symbols
>>> symbols('a:5')
Dane wyjściowe powyższego fragmentu kodu są następujące -
(a0, a1, a2, a3, a4)
>>> symbols('mark(1:4)')
Dane wyjściowe powyższego fragmentu kodu są następujące -
(mark1, mark2, mark3)