V tem članku boste izvedeli več o pretvorbi vrst in uporabi pretvorbe tipa.
Preden se naučite pretvorbe tipov v Pythonu, morate poznati znanje o tipih podatkov Python.
Pretvorba tipa
Postopek pretvorbe vrednosti enega podatkovnega tipa (celo število, niz, float itd.) V drug podatkovni tip se imenuje pretvorba tipa. Python ima dve vrsti pretvorbe tipa.
- Implicitna pretvorba tipa
- Izrecna pretvorba tipa
Implicitna pretvorba tipa
Pri pretvorbi implicitne vrste Python samodejno pretvori en podatkovni tip v drugega. Ta postopek ne zahteva nobenega sodelovanja uporabnika.
Poglejmo primer, kjer Python spodbuja pretvorbo nižjega podatkovnega tipa (celo število) v višji podatkovni tip (float), da se izogne izgubi podatkov.
Primer 1: Pretvorba celotnega števila v plavajoče
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))
Ko zaženemo zgornji program, bo rezultat:
podatkovni tip num_int: podatkovni tip num_flo: vrednost num_new: 124.23 podatkovni tip num_new:
V zgornjem programu
- Dodamo dve spremenljivki num_int in num_flo, ki vrednost shranita v num_new.
- Ogledali si bomo podatkovni tip vseh treh predmetov.
- V izhodu lahko vidimo, da je podatkovni tip num_int,
integer
medtem ko je podatkovni tip num_flo afloat
. - Prav tako lahko vidimo, da ima num_new
float
podatkovni tip, ker Python vedno pretvori manjše vrste podatkov v večje vrste podatkov, da se izogne izgubi podatkov.
Zdaj pa poskusimo dodati niz in celo število in poglejmo, kako se Python ukvarja z njimi.
Primer 2: Dodajanje podatkovnega tipa niza (višji) in podatkovnega tipa celo število (nižje)
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)
Ko zaženemo zgornji program, bo rezultat:
Podatkovni tip num_int: Podatkovni tip num_str: Sledenje (zadnji zadnji klic): Datoteka "python", vrstica 7, v TypeError: nepodprte vrste operandov za +: 'int' in 'str'
V zgornjem programu
- Dodamo dve spremenljivki num_int in num_str.
- Kot lahko vidimo iz rezultata, smo dobili
TypeError
. Python v takih pogojih ne more uporabljati implicitne pretvorbe. - Vendar ima Python rešitev za te vrste situacij, ki je znana kot eksplicitna pretvorba.
Izrecna pretvorba tipa
V eksplicitni pretvorbi tipov uporabniki pretvorijo podatkovni tip predmeta v zahtevani podatkovni tip. Uporabljamo vnaprej določene funkcije, kot so int()
, float()
, str()
, itd opravljati eksplicitno pretvorbo tipa.
Ta vrsta pretvorbe se imenuje tudi tipovanje, ker uporabnik odda (spremeni) podatkovni tip predmetov.
Sintaksa:
(izraz)
Predvajanje tipov lahko izvedete tako, da izrazu dodelite zahtevano funkcijo podatkovnega tipa.
Primer 3: Dodajanje niza in celih števil z uporabo 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))
Ko zaženemo zgornji program, bo rezultat:
Podatkovni tip num_int: Podatkovni tip num_str pred Type Casting: Podatkovni tip num_str po Type Casting: Vsota num_int in num_str: 579 Podatkovni tip vsote:
V zgornjem programu
- Dodamo spremenljivki num_str in num_int.
- Num_str smo iz niza (višji) pretvorili v celoštevilčni (nižji) z uporabo
int()
funkcije za izvedbo seštevanja - Po pretvorbi num_str v celoštevilčno vrednost lahko Python doda ti dve spremenljivki.
- Vrednost num_sum in tip podatkov imamo za celo število.
Ključne točke, ki si jih je treba zapomniti
- Pretvorba tipa je pretvorba predmeta iz enega podatkovnega tipa v drugega.
- Implicitna pretvorba tipa samodejno izvede tolmač Python.
- Python se izogne izgubi podatkov pri implicitni pretvorbi tipa.
- Izrecna pretvorba tipov se imenuje tudi Casting Type, uporabnik pretvori podatkovne tipe predmetov z uporabo vnaprej določenih funkcij.
- Pri vlivanju tipov lahko pride do izgube podatkov, ko objekt vsilimo določenemu tipu podatkov.