Python pretvorba i lijevanje tipova (s primjerima)

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.

  1. Implicitna pretvorba tipa
  2. 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 integerdok je vrsta podataka num_flo a float.
  • Također, možemo vidjeti da num_new ima floattip 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

  1. Pretvorba tipa je pretvorba objekta iz jedne vrste podataka u drugu vrstu podataka.
  2. Implicitnu pretvorbu tipa automatski izvodi tumač Python.
  3. Python izbjegava gubitak podataka u implicitnoj pretvorbi tipa.
  4. Eksplicitna pretvorba tipova naziva se i lijevanjem tipova, tipovi podataka objekt pretvara pomoću unaprijed definiranih funkcija od strane korisnika.
  5. U lijevanju tipova može doći do gubitka podataka dok prisiljavamo objekt na određenu vrstu podataka.

Zanimljivi članci...