Niniejszy artykuł z cyklu o Pythonie będzie stanowił dalszą część o typach danych opisanych w poprzednim materiale, więc skieruj się najpierw tam, jeśli typy danych są Ci zupełnie obce 👈. Teraz wyjaśnimy sobie czym jest konwersja typów danych w języku Python i jak ona przebiega 😄! W tym języku jest to dziecinnie prosta operacja, aczkolwiek trzeba uważać na pewne sytuacje, które mogą doprowadzić do awarii programu 💥. Zapraszam do środka 🙂!

WYJAŚNIAM NA CZYM POLEGA KONWERSJA TYPÓW DANYCH W JĘZYKU PYTHON!

Jak zwykle zaczniemy od samego pojęcia konwersji, a potem przejdziemy do zaprezentowania metod konwersji z jednego typu na drugi 👀!

CZYM JEST KONWERSJA TYPU DANYCH W PROGRAMOWANIU?

Gdy widzisz termin "konwersja typu danych", to chodzi o "przeniesienie" wartości z jednego typu danych na drugi 📖. W materiale o typach danych (kliknij tutaj ⏏️) powiedzieliśmy sobie, że narzuca on własną interpretację wartości. Przy skonwertowaniu takiej wartości z jednego typu do drugiego, ta interpretacja również ulega zmianie 🔥! Konwersja może się powieść tylko w jednym wypadku: gdy ma ona sens 😏.

Jeżeli dla przykładu mamy liczbę całkowitą 10 (bez ułamka), to możemy ją przekonwertować na liczbę zmiennoprzecinkową (z ułamkiem) i wtedy stanie się wartością 10.0 🙂. I taka konwersja będzie poprawna ✅. Natomiast jeżeli będziesz miał(a) łańcuch znaków o treści "Mąka" i będziesz chciał(a) ją przekonwertować na liczbę całkowitą, to potrafisz mi powiedzieć jaka wyjdzie wartość i z czego ona będzie wynikać 😆? Wtedy taka konwersja zostanie uznana za błędną i program się wysypie ❌.

W przypadku Pythona, jeżeli program "zgłupieje" 😅, to nastąpi zgłoszenie wyjątku o nazwie "ValueError" ❌.

Teraz możemy przejść do wyjaśnienia sobie operacji konwersji jaka obowiązuje w Pythonie 😄!

NA CZYM POLEGA KONWERSJA TYPU DANYCH W JĘZYKU PYTHON?

W Pythonie, do konwersji typów danych, w rzeczywistości stosujemy konstruktory klas typów danych, tak samo jakbyśmy tworzyli nową wartość danego typu (więcej informacji o programowaniu obiektowym w Pythonie znajdziesz w załączonym materiale ℹ️) 😮! Nie ma "prawdziwych" funkcji konwertujących występujących w wielu innych językach, w których wyraźnie widać rozgraniczenie pomiędzy tworzeniem, a konwertowaniem 🙂.

Mamy za sobą teorię związaną z konwersją typów danych w Pythonie, więc przechodzimy do ukazania pełnej listy funkcji przeznaczonych do tworzenia wartości typów danych 😉!

JAKIE WYSTĘPUJĄ FUNKCJE DO KONWERSJI TYPÓW DANYCH W JĘZYKU PYTHON?

Lista wszystkich funkcji konwertujących typ danej wartości, jest następująca (w nawiasie jest napisane znaczenie) 👇:

  1. int (liczba całkowita),
  2. set (zbiór),
  3. str (łańcuch znaków),
  4. bool (wartość logiczna),
  5. dict (słownik),
  6. list (lista),
  7. float (liczba zmiennoprzecinkowa),
  8. tuple (krotka).

Prezentuję przykłady dla każdej z funkcji oraz jakie operacje są dozwolone, aby konwersja się powiodła 👍.

INT (LICZBA CAŁKOWITA)

"int" tworzy nam typ całkowitoliczbowy (bez ułamka) 🔢. Tak wygląda przykład 👇:

my_int = int(10.75)

Wynikiem ostatecznym będzie 10 😲! To oznacza, że część ułamkowa nie jest zaokrąglana, tylko "obcinana" (jest przeprowadzana "podłoga" znana z matematyki ℹ️) 💥!

Dopuszczalne typy danych, które można skonwertować na liczbę całkowitą, to 👇:

  1. liczba całkowita,
  2. liczba zmiennoprzecinkowa (wtedy część ułamkowa zostaje "obcięta" ⚠️),
  3. wartość logiczna (wtedy "True" jest zamieniane na wartość 1, a "False" na wartość 0 ℹ️),
  4. łańcuch znaków reprezentujący jedynie liczbę całkowitą (tylko, gdy łańcuch nie posiada postaci liczby zmiennoprzecinkowej, jak również nie zawiera żadnych znaków zaburzających "postrzeganie" jako liczbę całkowitą ⚠️).
Konwersje na typ danych "int" w języku Python

Typ "int" dopuszcza możliwość tworzenia liczby całkowitej (bez ułamka) z innej liczby całkowitej, liczby zmiennoprzecinkowej, wartości logicznej ("bool") oraz łańcucha znaków (tylko, gdy składa się z samych cyfr).

SET (ZBIÓR)

"set" służy do tworzenia zbiorów, czyli struktur danych przechowujących wiele elementów, które są unikalne i nie trzeba zapamiętywać ich kolejności ℹ️. Oto przykład jednej z udanych konwersji 👇:

my_set = set([1, 2, 2])

Rezultatem będzie zbiór 2-elementowy 😲! Liczba 2 występuje dwukrotnie, zatem nie zostanie uwzględniona po raz drugi 🔥!

Dopuszczalne typy danych, które można skonwertować na zbiór, to 👇:

  1. lista (wtedy wykluczy wszystkie powtarzające się elementy ⚠️),
  2. zbiór,
  3. krotka (wtedy wykluczy wszystkie powtarzające się elementy ⚠️),
  4. zakres,
  5. słownik (wtedy weźmie pod uwagę tylko same klucze ⚠️),
  6. łańcuch znaków (wtedy otrzymamy zbiór pojedynczych znaków, ich kolejność zostanie pomieszana, a wszystkie powtarzające się znaki zostaną wykluczone ⚠️).
Konwersje na typ danych "set" w języku Python

Typ "set" tworzy nowy zbiór, który może pochodzić od listy, innego zbioru, krotki, zakresu, słownika oraz łańcucha znaków.

STR (ŁAŃCUCH ZNAKÓW)

"str" reprezentuje łańcuch znaków ℹ️. Przykład dozwolonej konwersji jest ukazany poniżej 👇:

my_string = str(10)

Liczba całkowita 10 (bez ułamka) bez problemu da się skonwertować na łańcuch znaków i w efekcie otrzymamy łańcuch "10" ✔️.

Dopuszczalne typy danych, które można skonwertować na łańcuch znaków, to 👇:

  1. liczba całkowita,
  2. łańcuch znaków,
  3. liczba zmiennoprzecinkowa.

Tutaj dodatkowa uwaga ⚠️! Łańcuch znaków tak naprawdę przyjmie każdy typ danych, ponieważ każdy posiada swój styl jego reprezentacji w charakterze łańcucha znaków 💡. Jednak większość tych konwersji po prostu nie będzie miała sensu, gdyż niektóre typy danych staną się dosłownym odzwierciedleniem wartości wypisywanych w konsoli 😅. Tak jest na przykład z listą 👇:

print(str([1, 2, 3]))

Tak jak wpiszemy, tak samo będzie wyglądać łańcuch znaków 👇:

'[1, 2, 3]'

Także warto mieć to na uwadze 🙂.

Konwersje na typ danych "str" w języku Python

Typ "str" przeznaczony jest do łańcuchów znaków, a ponieważ każdy typ danych posiada informację w formie łańcucha, wszystkie typy zostaną dopuszczone do konstruktora!

BOOL (WARTOŚĆ LOGICZNA)

"bool" to wartość logiczna, czyli "prawda" lub "fałsz" ℹ️. Tu konwersje wyglądają dużo ciekawiej, ponieważ nie są tak oczywiste jak dla pozostałych typów danych 😳! Dam najprostszy przykład 👇:

my_bool = bool(10)

Liczba 10 zwróci wartość "True" 🔥! W przypadku liczb, jest prosta zasada przydzielania wartości logicznej 👇:

  • jeżeli liczba jest różna od zera, wtedy zwróci wartość "True",
  • jeżeli liczba jest równa zero (dotyczy to również liczb zmiennoprzecinkowych, czyli 0.0 ⚠️!), wtedy zwróci wartość "False".

Dopuszczalne typy danych, które można skonwertować na wartość logiczną, to są wszystkie bez wyjątku 😁! Wartość końcowa w każdym przypadku, zależy od tego, czy podana wartość nie jest "pusta". Oto przykłady 👇:

  • jeżeli to lista, to czy zawiera w sobie przynajmniej jeden element,
  • jeżeli to łańcuch znaków, to czy posiada przynajmniej jeden znak.

O to chodzi 😊.

Konwersje na typ danych "bool" w języku Python

Typ "bool" związany jest z tworzeniem wartości logicznych (boolowskich). Wartość logiczna może powstać z każdego typu danych, a sama wartość zależy od tego, czy podana wartość nie jest "pusta".

DICT (SŁOWNIK)

"dict", w skrócie "dictionary", oznacza słownik - strukturę danych przechowującą pary "klucz-wartość" ℹ️. Jedyna konwersja jaka zostanie dopuszczona, to wstawienie samego słownika 👇:

my_dict = dict({'P1': 4000, 'P2': 4500})

Nie ma żadnych innych typów danych, które można skonwertować na słownik, ponieważ posiada specyficzną budowę, której nie ma żadna inna struktura 🙂.

Konwersje na typ danych "dict" w języku Python

Typ "dict" tworzy słownikowy typ danych i może powstać wyłącznie z innego słownika.

LIST (LISTA)

"list" dotyczy listy, czyli struktury danych przechowującej wiele elementów, która zezwala na duplikaty, zapamiętuje ich kolejność i elementy mogą być modyfikowane ℹ️. To jest przykład dopuszczalnej konwersji 👇:

my_list = list('Mój łańcuch znaków')

Dopuszczalne typy danych, które można skonwertować na listę, to 👇:

  1. lista,
  2. zbiór,
  3. krotka,
  4. zakres (wtedy otrzymamy ciąg liczb według przedziału ℹ️),
  5. słownik (wtedy weźmie pod uwagę tylko same klucze ⚠️),
  6. łańcuch znaków (wtedy otrzymamy listę pojedynczych znaków ułożonych w kolejności ℹ️).
Konwersje na typ danych "list" w języku Python

Typ "list" umożliwia tworzenie list, a nowa lista może powstać z innej listy, ze zbioru, krotki, zakresu, słownika i łańcucha znaków.

FLOAT (LICZBA ZMIENNOPRZECINKOWA)

"float" reprezentuje typ dla liczby zmiennoprzecinkowej (z ułamkiem) ℹ️. A to jeden z przykładów udanej konwersji 👇:

my_float = float('10')

Ponieważ łańcuch znaków składa się wyłącznie z cyfr (1 i 0), konwersja się uda i otrzymamy wynik 10.0 (gdyż to jest typ dla liczb zmiennoprzecinkowych 🫵!) 😊.

Dopuszczalne typy danych, które można skonwertować na liczbę zmiennoprzecinkową, to 👇:

  1. liczba całkowita,
  2. wartość logiczna (wtedy "True" jest zamieniane na wartość 1.0, a "False" jest zamieniane na wartość 0.0 ⚠️),
  3. liczba zmiennoprzecinkowa,
  4. łańcuch znaków reprezentujący liczbę całkowitą lub zmiennoprzecinkową (nie zawiera żadnych znaków zaburzających "postrzeganie" jako liczbę całkowitą ⚠️).

Zwróć uwagę na ciekawą rzecz 👀! Tutaj "float" dopuszcza możliwość wprowadzenia łańcucha znaków reprezentującego liczbę zmiennoprzecinkową, ale już w przypadku typu "int" łańcuch jest ograniczany tylko do liczby całkowitej 😮!

Konwersje na typ danych "float" w języku Python

Typ "float" stosuje się do tworzenia liczb zmiennoprzecinkowych (z ułamkiem), a ona może powstać z liczby całkowitej, wartości logicznej, innej liczby zmiennoprzecinkowej oraz łańcucha znaków (tylko, gdy reprezentuje liczbę całkowitą bądź zmiennoprzecinkową).

TUPLE (KROTKA)

"tuple" oznacza krotkę, czyli strukturę danych do przechowywania wielu elementów, która zezwala na duplikaty, zapamiętuje ich kolejność, natomiast jest odporna na wszelkie modyfikacje ℹ️. A oto jeden z przykładów konwersji na krotkę, która się powiedzie 👇:

my_tuple = tuple(range(5))

Efektem wprowadzenia zakresu liczb będzie krotka o elementach całkowitoliczbowych z przedziału od 0 do 4 ✅.

Dopuszczalne typy danych, które można skonwertować na krotkę, to 👇:

  1. lista,
  2. zbiór,
  3. krotka,
  4. zakres (wtedy otrzymamy ciąg liczb według przedziału ℹ️),
  5. słownik (wtedy weźmie pod uwagę tylko same klucze ⚠️),
  6. łańcuch znaków (wtedy otrzymamy listę pojedynczych znaków ułożonych w kolejności ℹ️).
Konwersje na typ danych "tuple" w języku Python

Typ "tuple" przeznaczony jest dla krotek, które mogą powstać z listy, zbioru, z innej krotki, zakresu, słownika oraz łańcucha znaków.


Zakończyliśmy wspólnie temat konwersji typów danych w języku Python 😉. Nic strasznego, tylko trzeba wiedzieć jakie typy danych są dopuszczalne i obchodzić się z tym z rozsądkiem 😄.

PODOBNE ARTYKUŁY