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. W programowaniu mamy do czynienia z wieloma innymi typami danych, bez których tworzenie oprogramowania, czy analiza danych byłyby niemożliwe. Język Python ma domyślnie wbudowane następujące typy danych, które klasyfikujemy w kategorie, zgodnie z poniższą tabelą:
Kategoria | Typ danych |
Tekstowy | str |
Liczbowy | int , float , complex |
Sekwencji | list , tuple , range |
Odwzorowania | dict |
Zestawów | set , frozenset |
Logiczny | bool |
Binarny | bytes , bytearray , memoryview |
Brak | NoneType |
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.
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:
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ą:
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ć.
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():
# 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.
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.