Przejdź do treści
Strona główna » Python typy danych

Python typy danych

Czym jest typ danych?

Typ danych określa jakiego „rodzaju” są te dane oraz jakie operacje można na nich wykonać. Najbardziej oczywistymi typami danych są dane liczbowe (numeryczne) oraz tekstowe. Jednak w programowaniu mamy do czynienia z wieloma innymi typami danych, bez których tworzenie oprogramowania byłoby niemożliwe. Język Python ma domyślnie wbudowane następujące typy danych, które klasyfikujemy w kategorie, zgodnie z poniższą tabelą:

KategoriaTyp danych
Tekstowystr
Liczbowyintfloatcomplex
Sekwencjilisttuplerange
Odwzorowaniadict
Zestawówsetfrozenset
Logicznybool
Binarnybytesbytearraymemoryview
BrakNoneType
Tabela 1. Typy danych w Pythonie
Python - typy danych
Rys. 1. Typy danych w języku Python

Typ tekstowy

Ciąg znaków (łańcuch znaków, z ang. string) to po prostu tekst. Nie można na nim wykonywać operacji arytmetycznych, za to można wykonywać inne operacje, takie jak ich łączenie, czy wycinanie podzbioru. Język Python definiuje szereg przydatnych metod przetwarzania stringów. Przykładowe operacje na ciągach znaków przedstawiłem poniżej.

Python
tekst = 'Witaj!'

print(tekst) # Drukuje cały ciąg
print(tekst[0]) # Drukuje pierwszy znak ciągu
print(tekst[3:5]) # Drukuje znaki od 4 do 5
print(tekst[1:]) # Drukuje ciąg znaków zaczynając od drugiego znaku
print(tekst + " Dobrego dnia!") # Drukuje połączony ciąg znaków

Zauważmy, że przy definicji zmiennej tekst nie podajemy żadnej informacji na temat tego, że jest to string. Interpreter Pythona rozpoznaje to po tym, że do tej zmiennej przypisujemy pewien zestaw liter w apostrofach. Analogicznie interpreter zidentyfikuje liczbę całkowitą, czy liczbę zmiennoprzecinkową na podstawie wartości znajującej się za operatorem przypisania (=).

Typ liczbowy (numeryczny)

Zmienne typu numerycznego przechowują wartości liczbowe. W tej kategorii rozróżniamy typ całkowity (integer), zmiennoprzecinkowy (float) oraz zespolony (complex). Typ całkowity reprezentuje liczby całkowite, z kolei typ zmiennoprzecinkowy reprezentuje liczby rzeczywiste. Zmienna zespolona składa się z części rzeczywistej i urojonej. Kod poniżej pokazuje jak w Pythonie definiujemy zmienne numeryczne:

Python
var1 = 1 # całkowity typ danych
var3 = 11.33 # typ danych zmiennoprzecinkowych
var4 = 4+2j   # zmienna typu zespolonego

Typ logiczny (boolean)

Zmienna typu logicznego możne przechowywać wartość Prawda lub Fałsz. Typ ten jest w programowaniu często potrzebny podczas sprawdzania czy dane wyrażenie jest prawdziwe, czy fałszywe. Kiedy porównujemy dwie wartości, to wyrażenie jest oceniane, a Python zwraca odpowiedź logiczną:

Python
print(11 > 8) # Wydrukuje "True"
print(11 == 8) # Wydrukuje "False"
print(11 < 8) # Wydrukuje "True"

Typ zestawów (zbiorów)

W tej kategorii rozróżniamy dwa typy danych: set i frozenset. Zestawy (zwane również zbiorami) są przydatne, gdy chcemy przechowywać unikalne elementy i wykonywać na nich operacje matematyczne, takie jak różnica, przecięcie, czy suma. Główna różnica pomiędzy set i frozenset polega na tym, że set jest mutable (zmienialny), podczas gdy frozenset jest immutable (niezmienialny). Poniżej pokazałem jak stworzyć zbiór, wykonać podstawowe działania (add, remove) oraz to, że na frozenset takich działań nie możemy wykonać.

Python
my_set = {1, 2, 3}
my_set.add(4) # po tej komendzie my_set = {1, 2, 3, 4}
my_set.remove(2) # po tej komendzie my_set = {1, 3, 4}

my_frozenset = frozenset([1, 2, 3])

# Poniższy kod spowoduje błąd
my_frozenset.add(4)
my_frozenset.remove(2)

Inne typy danych w języku Python

W Pythonie dostępne mamy jeszcze inne typy danych, które wymieniłem tabeli 1. Możemy tu wymienić listy, krotki czy słowniki. Listy omówiłem w artykule ’Python: listy’, słowniki w artykule ’Python: słowniki’, a krotki w artykule ’Python: krotki’.

Jak sprawdzić typ zmiennej Python?

Do sprawdzenia typu danych zmiennej w Pythonie, używamy funkcji type():

Python
# Przykładowe zmienne
integer_var = 42
float_var = 3.14
string_var = "Hello, World!"

# Sprawdznie typu przy użyciu funkcji type()
print(type(integer_var))      # <class 'int'>
print(type(float_var))        # <class 'float'>
print(type(string_var))       # <class 'str'>

Widzimy, że typ zmiennej integer_var to int, czyli liczba całkowita. Z kolei float_var to liczba zmiennoprzecinkowa. Jak wcześniej wspomniałem, interpreter Pythona samodzielnie identyfikuje typ na podstawie wartości przypisanej do zmiennej. Ponieważ liczba 42 nie posiada części dziesiętnej to typ zmiennej został określony jako int. Przypisanie liczby 3.14, czyli posiadającej część dziesiętną, do zmiennej float_var powoduje, że jej typ zostaje określony jako float.

Podsumowanie

Z tego artykułu dowiedziałeś się czym są typy danych i jakie typy danych są wbudwane w języku Python. Przeczytałeś również jak utworzyć zmienne typu liczbowego, tekstowego i logicznego oraz jak sprawdzić typ zmiennej.

Szymon Skoneczny

O autorze

Dr hab. inż. Szymon Skoneczny specjalizuje się w informatyce przemysłowej i symulacjach komputerowych. Współpracował z takimi uczelniami jak Politechnika Krakowska i Akademia Górniczo-Hutnicza oraz firmami, m. in. Siemens, Electricite de Fracne, ArcelorMittal.