Pretvorba tipa znači promjenu tipa podataka vrijednosti. Na primjer pretvaranje cijelog broja (5) u float (5.0) ili niza ('10') u cijeli broj (10). U Pythonu postoje dvije vrste pretvorbe tipa:
- Implicitna pretvorba: Python sam mijenja vrstu podataka tijekom izvođenja koda kako bi izbjegao pogreške ili gubitak podataka.
- Eksplicitna konverzija: Tip podataka namjerno mijenjate pomoću funkcija poput int() float() ili str().
Implicitna pretvorba tipa
U implicitna pretvorba Python automatski pretvara jedan tip podataka u drugi tijekom procjene izraza. To se obično događa kada se manji tip podataka kao što je int kombinira s većim kao što je float u operaciji. Primjer:
Pythonx = 10 # Integer y = 10.6 # Float z = x + y print('x:' type(x)) print('y:' type(y)) print('z =' z) print('z :' type(z))
Izlaz
x:y: z = 20.6 z :
Objašnjenje: x je cijeli broj i i je plovak. U z = x + y Python automatski pretvara x plutati kako bi se izbjegao gubitak podataka S plovak 0,6.
Eksplicitna pretvorba tipa
Eksplicitna konverzija (ili pretvaranje tipa) je kada ručno pretvorite tip podataka vrijednosti koristeći Python ugrađene funkcije . Ovo je korisno kada želite kontrolirati kako se podaci tumače ili manipuliraju u vašem kodu. Neke uobičajene funkcije pretvaranja tipa uključuju:
- int() pretvara vrijednost u cijeli broj
- float() pretvara vrijednost u broj s pomičnim zarezom
- str() pretvara vrijednost u niz
- bool() pretvara vrijednost u Booleovu (točno/netočno)
Primjer:
Pythons = '100' # String a = int(s) print(a) print(type(a))
Izlaz
100
Objašnjenje: a = int(s) eksplicitno ga pretvaramo u cijeli broj. Ova ručna promjena tipa naziva se eksplicitna pretvorba tipa i a postaje 100 tipa
Primjeri uobičajenih funkcija pretvorbe tipa
Primjer 1: Pretvaranje binarnog niza
Pythons = '10010' a = int(s 2) print(a) b= float(s) print(b)
Izlaz
18 10010.0
Obrazloženje:
- int(s 2) tumači binarni niz '10010' kao cijeli broj 18.
- plovak(i) pretvara niz u broj s pomičnim zarezom.
Primjer 2: ASCII heksadecimalna i oktalna konverzija
Pythonc = '4' print('ASCII of '4':' ord(c)) print('56 in Hex:' hex(56)) print('56 in Octal:' oct(56))
Izlaz
ASCII of '4': 52 56 in Hex: 0x38 56 in Octal: 0o70
Obrazloženje:
- riječ(i) vraća ASCII kod znaka '4'.
- hex() i listopad() pretvoriti cijeli broj 56 u njegove heksadecimalne i oktalne prikaze.
Primjer 3 : Niz u tuple set i popis
Pythons = 'geeks' print('To tuple:' tuple(s)) print('To set:' set(s)) print('To list:' list(s))
Izlaz
To tuple: ('g' 'e' 'e' 'k' 's') To set: {'e' 'g' 'k' 's'} To list: ['g' 'e' 'e' 'k' 's'] Obrazloženje:
- tuple(s) održava redom sve znakove uključujući duplikate.
- set(ovi) uklanja duplikate i vraća nesređenu zbirku.
- popis(i) vraća popis znakova iz niza.
Primjer 4: Ostale pretvorbe – Rječnik složenih nizova
Pythona = 1 tup = (('a' 1) ('f' 2) ('g' 3)) print('To complex:' complex(1 2)) print('To string:' str(a)) print('To dict:' dict(tup))
Izlaz
To complex: (1+2j) To string: 1 To dict: {'a': 1 'f': 2 'g': 3} Obrazloženje:
- kompleks(1 2) stvara kompleksan broj s realnim dijelom 1 i imaginarnim dijelom 2.
- str(a) pretvara cijeli broj 1 u niz '1'.
- dict(tup) stvara rječnik iz niza torki ključ-vrijednost.