W tym artykule dowiesz się o konwersji typu i zastosowaniach konwersji typu.
Zanim nauczysz się konwersji typów w Pythonie, powinieneś mieć wiedzę na temat typów danych w Pythonie.
Konwersja typów
Proces konwersji wartości jednego typu danych (liczba całkowita, ciąg znaków, zmiennoprzecinkowa itp.) Na inny typ danych nazywa się konwersją typów. Python ma dwa typy konwersji typów.
- Niejawna konwersja typów
- Jawna konwersja typu
Niejawna konwersja typów
W przypadku niejawnej konwersji typu Python automatycznie konwertuje jeden typ danych na inny typ danych. Ten proces nie wymaga zaangażowania użytkownika.
Zobaczmy przykład, w którym Python promuje konwersję niższego typu danych (liczba całkowita) do wyższego typu danych (liczba zmiennoprzecinkowa), aby uniknąć utraty danych.
Przykład 1: Konwersja liczby całkowitej na zmiennoprzecinkową
num_int = 123 num_flo = 1.23 num_new = num_int + num_flo print("datatype of num_int:",type(num_int)) print("datatype of num_flo:",type(num_flo)) print("Value of num_new:",num_new) print("datatype of num_new:",type(num_new))
Kiedy uruchomimy powyższy program, wynik będzie:
typ danych num_int: typ danych num_flo: Wartość num_new: 124,23 typ danych num_new:
W powyższym programie
- Dodajemy dwie zmienne num_int i num_flo, przechowując wartość w num_new.
- Przyjrzymy się odpowiednio typom danych wszystkich trzech obiektów.
- W wynikach widzimy, że typ danych num_int to an,
integer
a typ danych num_flo to afloat
. - Widzimy również, że num_new ma
float
typ danych, ponieważ Python zawsze konwertuje mniejsze typy danych na większe typy danych, aby uniknąć utraty danych.
Teraz spróbujmy dodać ciąg i liczbę całkowitą i zobaczmy, jak sobie z tym radzi Python.
Przykład 2: Dodanie typu string (wyższy) i integer (niższy) typ danych
num_int = 123 num_str = "456" print("Data type of num_int:",type(num_int)) print("Data type of num_str:",type(num_str)) print(num_int+num_str)
Kiedy uruchomimy powyższy program, wynik będzie:
Typ danych num_int: Typ danych num_str: Traceback (ostatnie wywołanie ostatnie): Plik „python”, wiersz 7, w TypeError: nieobsługiwane typy operandów dla +: „int” i „str”
W powyższym programie
- Dodajemy dwie zmienne num_int i num_str.
- Jak widać na wyjściu, otrzymaliśmy
TypeError
. W takich warunkach Python nie może używać niejawnej konwersji. - Jednak Python ma rozwiązanie dla tego typu sytuacji, które jest znane jako jawna konwersja.
Jawna konwersja typu
W jawnej konwersji typu użytkownicy konwertują typ danych obiektu na wymagany typ danych. Używamy predefiniowanych funkcji, takich jak int()
, float()
, str()
itp wykonywać wyraźne konwersji typów.
Ten typ konwersji jest również nazywany rzutowaniem typów, ponieważ użytkownik rzutuje (zmienia) typ danych obiektów.
Składnia:
(wyrażenie)
Rzutowanie typu można wykonać, przypisując wymaganą funkcję typu danych do wyrażenia.
Przykład 3: dodanie ciągu znaków i liczby całkowitej za pomocą jawnej konwersji
num_int = 123 num_str = "456" print("Data type of num_int:",type(num_int)) print("Data type of num_str before Type Casting:",type(num_str)) num_str = int(num_str) print("Data type of num_str after Type Casting:",type(num_str)) num_sum = num_int + num_str print("Sum of num_int and num_str:",num_sum) print("Data type of the sum:",type(num_sum))
Kiedy uruchomimy powyższy program, wynik będzie:
Typ danych num_int: Typ danych num_str przed rzutowaniem typu: Typ danych num_str po rzutowaniu typu: Suma liczb num_int i num_str: 579 Typ danych sumy:
W powyższym programie
- Dodajemy zmienne num_str i num_int.
- Przekonwertowaliśmy num_str z typu string (wyższy) na typ całkowity (niższy) przy użyciu
int()
funkcji do wykonania dodawania. - Po przekonwertowaniu num_str na wartość całkowitą, Python może dodać te dwie zmienne.
- Otrzymaliśmy wartość num_sum i typ danych jako liczbę całkowitą.
Kluczowe punkty do zapamiętania
- Konwersja typu to konwersja obiektu z jednego typu danych na inny typ danych.
- Niejawna konwersja typów jest wykonywana automatycznie przez interpreter języka Python.
- Python unika utraty danych w niejawnej konwersji typu.
- Jawna konwersja typów jest również nazywana rzutowaniem typów, typy danych obiektów są konwertowane przy użyciu wstępnie zdefiniowanych funkcji przez użytkownika.
- W przypadku rzutowania typów może wystąpić utrata danych, gdy wymuszamy na obiekcie określony typ danych.