Konwersja i rzutowanie typów w Pythonie wyjaśnione z przykładami

Opublikowany: 2020-02-19

Python ma wiele typów danych i jako programista powinieneś wiedzieć, jak przekonwertować jeden typ danych Pythona na inny. Python ma wiele wbudowanych funkcji do tego zadania. W tym prostym przewodniku przyjrzymy się im, aby pomóc Ci lepiej zrozumieć konwersje typu.

Po zapoznaniu się z tym przewodnikiem będziesz wiedział, jak konwertować łańcuchy na liczby całkowite i na odwrót. Więc bez zbędnych ceregieli zacznijmy.

Spis treści

Typy danych w Pythonie

Zanim zaczniemy dyskusję na temat konwersji typów w Pythonie, przyjrzyjmy się pokrótce wszystkim typom danych obecnym w tym języku:

Liczby całkowite

Wartości całkowite mogą być dowolnie długie. Podobnie jak w matematyce, liczby całkowite w Pythonie też są cyframi. Ale nie możesz mieć nieskończenie długich liczb całkowitych, chyba że masz superkomputer. Python traktuje dowolną liczbę bez przedrostka jako liczbę całkowitą. Liczby te zawierają również cyfry dziesiętne.

Liczb zmiennoprzecinkowych

Liczby zmiennopozycyjne w Pythonie to liczby zapisywane z kropką dziesiętną w celu oddzielenia cyfr ułamkowych od liczby całkowitej. Niektóre przykłady liczb zmiennoprzecinkowych to 4.3, 9.18 itd. Możesz dodać 'e' dla notacji naukowej również w Pythonie.

Liczby zespolone

Liczby zespolone w Pythonie mają następujący format: (część rzeczywista + część urojona). Niektóre przykłady liczb zespolonych to (3+2i), (8-2x) itp.

Smyczki

Łańcuchy mogą być dowolnymi zestawami znaków w Pythonie. Nazywa się je str. Możesz je pisać, używając cudzysłowów. Możesz używać pojedynczych cudzysłowów, a także podwójnych cudzysłowów do pisania ciągów w Pythonie. Ciągi mogą być dowolnymi znakami umieszczonymi w cudzysłowie, np. „91”, „hello” itp.

Podobnie jak liczby całkowite, nie ma ograniczeń co do długości znaków w łańcuchach. Ciągi są różnych typów, na przykład ciągi w potrójnym cudzysłowie, ciągi surowe i wiele innych. Gdybyśmy jednak zaczęli omawiać struny i ich rodzaje, ten artykuł byłby zbyt długi.

Typ danych logicznych

Ostatnim typem danych, który pozostawiliśmy do omówienia, jest typ danych Boolean. Dane logiczne mogą mieć jedną z dwóch wartości, które są prawdziwe i fałszywe. Wartości logiczne są dość istotne w Pythonie z wielu powodów. Możesz użyć wartości logicznych do określenia prawdziwości obiektów i wartości.

Przeczytaj: Wynagrodzenie programisty Pythona w Indiach 2020

Gdy dowiesz się więcej o operatorach logicznych w Pythonie, będziesz musiał zajmować się obiektami i wartościami boolowskimi.

To były wszystkie typy danych obecne w Pythonie. Dowiedz się więcej o typach danych w Pythonie. Oprócz tych typów danych Python ma również wiele wbudowanych funkcji, które pomagają mu w wykonywaniu różnych zadań. Aby zaimplementować konwersję typów, będziemy potrzebować również kilku wbudowanych funkcji. Zapoznaj się z naszymi programami do analizy danych, aby dowiedzieć się o różnych typach konwersji.

Teraz, gdy omówiliśmy typy danych, możemy przejść do konwersji typów.

Różne rodzaje konwersji typów w Pythonie

W Pythonie istnieją dwa rodzaje konwersji typów. Są to:

Domniemany

W takim przypadku Python automatycznie konwertuje typ danych na inny typ. Ty, użytkownik, nie musisz angażować się w ten proces. Oto przykład niejawnej konwersji liczby całkowitej na zmiennoprzecinkową w Pythonie:

liczba_int = 18

liczba_flo = 1,8

liczba_nowa = liczba_int + liczba_flo

print("typ danych num_int:", typ(num_int))

print("typ danych num_flo:", typ(num_flo))

print("Wartość num_new:",num_new)

print("typ danych num_new:",type(num_new))

Wynik powyższego kodu byłby następujący:

typ danych num_int: <klasa 'int'>

typ danych num_flo: <klasa 'float'>

Wartość num_new: 19,8

typ danych num_new: <klasa 'float'>

Jak widać, musieliśmy tylko dodać num_flo i num_int wraz z num_new, aby uzyskać żądane wyjście. Przekonwertowaliśmy liczbę całkowitą 18 na liczbę zmiennoprzecinkową 19.8 w kilku linijkach kodu. Należy tutaj zauważyć, że Python automatycznie zamienił liczbę całkowitą na liczbę zmiennoprzecinkową.

Wyraźny

W przypadku konwersji typu explicit używamy funkcji do celów konwersji. Pamiętasz wbudowane funkcje, o których wspominaliśmy wcześniej? Przydadzą się w tej sekcji. Inną nazwą jawnych konwersji typów jest rzutowanie typów. Ma tę nazwę, ponieważ ty, użytkownik, rzutujesz typ danych danego obiektu.

Istnieje kilka funkcji konwersji typów, które powinieneś znać, aby wykonywać rzutowanie typów w Pythonie. Int(a,base) jest popularną funkcją, ponieważ może konwertować dowolny typ danych na liczbę całkowitą. float() może zamienić dowolny typ danych w liczbę zmiennoprzecinkową. oct() konwertuje liczby całkowite na łańcuchy ósemkowe, a hex() konwertuje liczby całkowite na łańcuchy szesnastkowe.

Oto przykład konwersji typu za pomocą oct():

c = ok(80)

drukuj („Wyjście : „, koniec =””)

druk (c)

A wynik byłby następujący:

Wyjście: 0o120

Podczas pracy z tymi funkcjami pamiętaj, że składnia takiej konwersji powinna wyglądać następująco:

(pożądany_typ danych)(wyrażenie)

Istnieje wiele rodzajów konwersji typów, które można wykonać w Pythonie. Są jednak dwa ich rodzaje, które będziesz wykonywać najczęściej. Konwersja łańcuchów na liczby całkowite i odwrotnie może być świetnym punktem wyjścia. Omówmy więc każdą z tych konwersji typu osobno, aby lepiej zrozumieć ten temat:

Przeczytaj: Pomysły i tematy dotyczące projektów deweloperskich w Pythonie

Konwersja String na int Python

Możesz przekonwertować łańcuch na int Python za pomocą funkcji int(). Wystarczy jedno kliknięcie, aby uzyskać dziesiętną liczbę całkowitą. Zakłada, że ​​wprowadzone wyrażenie jest dziesiętną liczbą całkowitą, ale jeśli tak nie jest, zwróci ValueError. A tego nie chcemy. Możesz wspomnieć o systemie liczbowym, którego potrzebujesz, podając wartość podstawę, aby uniknąć tego problemu.

Tak więc, jeśli konwertujesz łańcuch na int w Pythonie, możesz to zrobić:

wewn(„5”)

Możesz też dodać bazę dla różnych rodzajów ciągów:

int(„5” , podstawa=10)

Omówmy teraz odwrotność tej konwersji, tj. kiedy trzeba zamienić liczbę całkowitą na łańcuch.

Konwersja int na String Python

Możesz użyć funkcji str() do konwersji liczb całkowitych na łańcuchy. Po prostu postępuj zgodnie ze składnią, o której wspomnieliśmy wcześniej:

str(5)

Ciągi mogą konwertować liczby całkowite na wyrażenia dziesiętne, jeśli używasz literału binarnego. Jednak podobnie jak w przypadku funkcji int, jeśli chcesz, możesz dodać więcej informacji dla różnych konwersji. Za pomocą tej funkcji możesz uzyskać wyniki ósemkowe, binarne, a nawet szesnastkowe.

Po odrobinie praktyki możesz również wykonywać bardziej złożone zadania z konwersją typów. Oto przykład dodawania ciągu z liczbą całkowitą poprzez rzutowanie typów:

liczba_int = 256

liczba_str = „64”

print("Typ danych num_int:",type(num_int))

print("Typ danych num_str przed rzutowaniem typu:",type(num_str))

liczba_str = int(liczba_str)

print("Typ danych num_str po Type Casting:",type(num_str))

liczba_suma = liczba_int + liczba_str

print("Suma num_int i num_str:",num_sum)

print("Typ danych sumy:",type(num_sum))

Wynik powyższego kodu byłby następujący:

Typ danych num_int: <klasa 'int'>

Typ danych num_str przed rzutowaniem typu: <class 'str'>

Typ danych num_str po Type Casting: <class 'int'>

Suma num_int i num_str: 320

Typ danych sumy: <klasa 'int'>

Jak widać, to świetna zabawa. Zachęcamy do eksperymentowania z konwersjami typów i poszerzania swojej bazy wiedzy.

Wniosek

Mamy nadzieję, że wiele się nauczyłeś z tego artykułu. Wykonywanie konwersji typów to jedna z wielu rzeczy, które możesz zrobić za pomocą funkcji Pythona.

Jeśli czytasz ten artykuł, najprawdopodobniej masz ambicje zostać programistą Pythona. Jeśli jesteś zainteresowany nauką Pythona i chcesz ubrudzić sobie różne narzędzia i biblioteki, sprawdź dyplom PG IIIT-B z nauki o danych.

Czym w kodowaniu różnią się jawne konwersje od niejawnych konwersji?

Niejawna konwersja typu to konwersja typu zdefiniowana przez użytkownika i wymuszająca wyrażenie określonego typu. Gdy kilka typów danych jest połączonych razem w wyrażeniu, kompilator wykonuje niejawną konwersję typu. Konwersja jawna, znana również jako rzutowanie, ma miejsce, gdy jawnie konwertujemy jeden typ danych na inny, wykonując odpowiednią funkcję dla typu danych, na który chcemy przekonwertować. Bez pomocy programisty wykonywana jest niejawna konwersja typu.

Czym różni się rzutowanie typów od konwersji typów?

Docelowy typ danych musi być mniejszy niż źródłowy typ danych podczas rzutowania jednego typu danych na inny. Jednak dane źródłowe muszą być mniejsze niż docelowy typ danych podczas konwertowania jednego typu danych na inny. Programista musi ręcznie rzutować jeden rodzaj danych na inny typ. Konwersja jednego typu danych na inny nie wymaga żadnej interwencji programisty, ponieważ kompilator automatycznie kompiluje go podczas wykonywania programu. Istnieje prawdopodobieństwo, że dane lub informacje zostaną utracone podczas rzutowania typu. Podczas konwertowania małego typu danych na duży typ danych jest mało prawdopodobne, aby dane zostały utracone.

Co jest bardziej wydajne w krotkach czy listach w Pythonie?

Krotka to oddzielona przecinkami kolekcja obiektów Pythona, a ze względu na swoją statyczną naturę krotka jest szybsza niż lista. Krotki są również bardziej wydajne pod względem pamięci niż listy. Jeśli chodzi o efektywność czasową, krotki mają niewielką przewagę nad listami, szczególnie jeśli chodzi o wyszukiwanie wartości. Jeśli masz dane, które nie powinny być zmieniane w pierwszej kolejności, typ danych krotki powinien być preferowany nad listą. Możemy stworzyć listę krotek, co oznacza, że ​​członkowie krotki mogą być opakowani w listę, a zatem mają te same cechy, co lista w Pythonie. Ponieważ krotki Pythona zajmują mniej miejsca, tworzenie listy krotek jest bardziej praktyczne.