W tej części opisane zostaną wbudowane w Python typy danych.
Sam język posiada szereg wbudowanych typów:
1. None
None to specyficzne dla Python’a słowo kluczowe oznaczające brak przypisanej wartości (w innych językach często odpowiednikiem jest Null) .
2. Typ logiczny
Typem reprezentującym logiczną prawdę (wartość True) lub fałsz (False) jest bool. Najczęściej wyrażenie zwracające taką wartość używane jest w instrukcjach warunkowych (if) lub pętlach (while).
Przykładowo:
>>> if not x:
print(„OK”)
Użyty w powyższym przykładzie operator not spowoduje, iż wyraz OK zostanie wypisany tylko wtedy, gdy wartość zmiennej „x” NIE jest prawdą.
Testowana wartość zmiennej „x” nie musi być typu logicznego bool – wyrażenie zostanie uznane za fałsz gdy jest jedną z poniższych wartości:
- None
- Logiczną wartością False
- Liczbową wartością zero
- Pustą sekwencją (krotką (), listą [], łańcuchem znakowym ””) lub słownikiem {}
- Dowolnym obiektem, którego klasa definiuje metodę __len__ lub __bool__ , a metoda ta, dla tego obiektu zwraca wartość numeryczną 0 lub logiczny fałsz (False).
W Python’ie 2.6 i wcześniejszych metoda __bool__ nosiła nazwę __nonzero__
Podstawowe operatory logiczne to or,and oraz not:
| operator | operacja | Rezultat |
| or | x or y | jeśli x jest fałszem zwraca y, w przeciwnym razie x |
| and | x and y | jeśli x jest fałszem zwraca x, w przeciwnym razie y |
| not | not x | jeśli x jest fałszem zwraca logiczną wartość True, jeśli nie to False |
Odpowiednie wartości logiczne zwracane są przez używane w rozmaitych wyrażeniach (najczęściej instrukcjach warunkowych „if”) operatory porównań:
| operator | Opis |
| < | mniejsze |
| <= | mniejsze lub równie |
| > | większe |
| >= | większe lub równe |
| == | równe |
| != | różne |
| is | jest |
| in | zawiera się |
Począwszy od Python’a 3.0 operacja porównania wartości, która nie ma sensu (np. porównanie 1<”” albo None>None) wyrzuca wyjątek TypeError.
W poprzednich wersjach (włącznie z 2.6) można było wpisać:
>>> a=None>""
>>> a
False
W Python’ie 3.0 wyrzucony zostanie wyjątek:
>>> a=None>""
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: NoneType() > str()
Typy numeryczne
Python posiada wbudowanych kilka standardowych typów numerycznych, umożliwiające operacje na liczbach całkowitych, rzeczywistych oraz zespolonych.
Poniższa lista prezentuje operatory i funkcje typów numerycznych:
| Operator/Funkcja | Znaczenie |
| X + Y | Suma X i Y |
| X – Y | Różnica X i Y |
| X * Y | Iloczyn X i Y |
| X / Y | Iloraz X i Y |
| X // Y | Iloraz (zaokrąglony w dół) X i Y |
| X % Y | Reszta z dzielenia X i Y |
| -X | Negacja X |
| abs(X) | Wartość bezwględna X |
| int(X) | Wartość całkowita X |
| float(X) | Wartość zmiennoprzecinkowa X |
| complex(RE,IM) | Liczba zespolona z częścią rzeczywistą RE i urojoną IM (domyślnie zero) |
| C.conjugate() | Zwraca liczbę sprzężoną liczby zespolonej C |
| divmod(X,Y) | Krotka: ( X // Y , X % Y ) |
| pow(X , Y) | X do potęgi Y |
| X ** Y | X do potęgi Y |
1. int
Liczby całkowite, do wersji 2.6 Python’a były one przechowywane za pomocą wartości 32-bitowych (aby sprawdzić największą wartość jaką może przyjmować int można było w Python’ie 2.6 i wcześniejszych użyć metody maxint z modułu sys). Python 3.0 ujednolicił typy int oraz long: istnieje jeden typ int zachowujący się jak long z Python’a 2.6 (a więc jego zakres nie jest ograniczony).
Aby utworzyć zmienną x typu int i przypisać jej wartość 123 wystarczy napisać:
>>> x1 = 123
Wykorzystując odpowiednie prefix’y możliwe jest także użycie notacji dwójkowej, ósemkowym oraz szesnastkowej:
>>> x2=0b1111011
>>> x3=0o173
>>> x4=0x7b
Wszystkie powyższe zapisy tworzą zmienne o wartości dziesiętnej 123
Dla liczb całkowitych istnieje także możliwość wykonywania operacji bitowych. Poniższa tabela przedstawia operatory bitowe w kolejności rosnącego priorytetu.
| Operator | Rezultat |
| X | Y | Bitowa sumy (OR) |
| X ^ Y | Bitowa różnica symetryczna (XOR) |
| X & Y | Bitowy iloczyn (AND) |
| X << N | X przesunięte w lewo o N bitów |
| X >> N | X przesunięte w prawo o N bitów |
| ~X | Inwersja bitowa |
Priorytet operacji bitowych jest niższy niż operacji arytmetycznych , a wyższy od porównań.
2. float
To liczby zmiennoprzecinkowe, implementowane za pomocą zmiennych typu double języka C, ich precyzja zależy od konkretnej platformy.
Tworzyć liczby tego typu można następująco:
>>> x = 123.0
3. complex
To liczby zespolone, podobnie jak float implementowane za pomocą wartości double języka C. Mając liczbę zespoloną x można odwołać się do części rzeczywistej poprzez x.real, a do urojonej przez x.imag.
Liczby urojone można tworzyć następująco:
>>> x1=1+2j
>>> x2=complex(0,4)
>>> print(x1)
(1+2j)
>>> print(x2)
4j
W następnej części napiszemy o wbudowanych typach sekwencyjnych.
Komentarze
Dodaj komentarz Trackback