U ovom ćete članku naučiti o pretvorbi tipova i upotrebi pretvorbe tipova.
Prije učenja pretvorbe tipova u Pythonu, trebali biste imati znanje o tipovima podataka Python.
Pretvorba tipa
Proces pretvaranja vrijednosti jednog tipa podataka (cijeli broj, niz, float itd.) U drugi tip podataka naziva se pretvorba tipa. Python ima dvije vrste pretvorbe tipova.
- Implicitna pretvorba tipa
- Eksplicitna pretvorba tipa
Implicitna pretvorba tipa
U implicitnoj pretvorbi tipa, Python automatski pretvara jedan tip podataka u drugi tip podataka. U ovom procesu nije potrebno sudjelovanje korisnika.
Pogledajmo primjer gdje Python promovira pretvorbu nižeg tipa podataka (cijeli broj) u viši tip podataka (float) kako bi se izbjegao gubitak podataka.
Primjer 1: Pretvaranje cijelog broja u plutajući
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))
Kada pokrenemo gornji program, izlaz će biti:
tip podataka num_int: tip podataka num_flo: Vrijednost num_new: 124.23 tip podataka num_new:
U gornjem programu,
- Dodamo dvije varijable num_int i num_flo, pohranjujući vrijednost u num_new.
- Pogledat ćemo tip podataka sva tri objekta.
- U izlazu možemo vidjeti da je vrsta podataka num_int je
integer
dok je vrsta podataka num_flo afloat
. - Također, možemo vidjeti da num_new ima
float
tip podataka jer Python uvijek pretvara manje tipove podataka u veće tipove podataka kako bi izbjegao gubitak podataka.
Pokušajmo sada dodati niz i cijeli broj i vidjeti kako se Python nosi s tim.
Primjer 2: Dodavanje vrste podataka niza (viša) i vrste podataka cijelog broja (niža)
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)
Kada pokrenemo gornji program, izlaz će biti:
Vrsta podataka num_int: Vrsta podataka num_str: Traceback (najnoviji zadnji poziv): Datoteka "python", red 7, u TypeError: nepodržani (i) tipovi operanda za +: 'int' i 'str'
U gornjem programu,
- Dodamo dvije varijable num_int i num_str.
- Kao što vidimo iz rezultata, dobili smo
TypeError
. Python nije u mogućnosti koristiti implicitnu pretvorbu u takvim uvjetima. - Međutim, Python ima rješenje za ove vrste situacija koje je poznato kao eksplicitna konverzija.
Eksplicitna pretvorba tipa
U eksplicitnoj pretvorbi tipova, korisnici pretvaraju vrstu podataka objekta u traženi tip podataka. Mi koristimo unaprijed definiranih funkcija kao što su int()
, float()
, str()
, itd obavljati eksplicitan tipa pretvorbe.
Ova vrsta pretvorbe naziva se i tipiziranjem, jer korisnik emitira (mijenja) tip podataka objekata.
Sintaksa:
(izraz)
Predstavljanje tipova može se izvršiti dodjeljivanjem izrazu potrebne funkcije tipa podataka.
Primjer 3: Dodavanje niza i cijelog broja pomoću eksplicitne pretvorbe
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))
Kada pokrenemo gornji program, izlaz će biti:
Tip podataka num_int: Tip podataka num_str prije lijevanja tipa: Tip podataka num_str nakon lijevanja tipa: Zbir num_int i num_str: 579 Tip podataka zbroja:
U gornjem programu,
- Dodamo varijablu num_str i num_int.
- Num_str smo pretvorili iz niza (viši) u cjelobrojni (niži) tip pomoću
int()
funkcije za izvođenje zbrajanja. - Nakon pretvorbe num_str u cijelu vrijednost, Python može dodati ove dvije varijable.
- Dobili smo vrijednost num_sum i tip podataka kao cijeli broj.
Ključne točke koje treba zapamtiti
- Pretvorba tipa je pretvorba objekta iz jedne vrste podataka u drugu vrstu podataka.
- Implicitnu pretvorbu tipa automatski izvodi tumač Python.
- Python izbjegava gubitak podataka u implicitnoj pretvorbi tipa.
- Eksplicitna pretvorba tipova naziva se i lijevanjem tipova, tipovi podataka objekt pretvara pomoću unaprijed definiranih funkcija od strane korisnika.
- U lijevanju tipova može doći do gubitka podataka dok prisiljavamo objekt na određenu vrstu podataka.