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.