Tyyppimuunnos tarkoittaa arvon tietotyypin muuttamista. Esimerkiksi muunnetaan kokonaisluku (5) floatiksi (5.0) tai merkkijono ('10') kokonaisluvuksi (10). Pythonissa on kahdenlaisia tyyppimuunnoksia:
- Implisiittinen muunnos: Python muuttaa tietotyyppiä itse koodin suorittamisen aikana virheiden tai tietojen katoamisen välttämiseksi.
- Selkeä muunnos: Muutat tietotyyppiä tarkoituksella käyttämällä funktioita, kuten int() float() tai str().
Implisiittisen tyypin muunnos
sisään implisiittinen muuntaminen Python muuntaa automaattisesti yhden tietotyypin toiseksi lausekkeen arvioinnin aikana. Tämä tapahtuu yleensä, kun operaatiossa yhdistetään pienempi tietotyyppi, kuten int, suurempaan, kuten float. Esimerkki:
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))
Lähtö
x:y: z = 20.6 z :
Selitys: x on kokonaisluku ja ja on kelluke. sisään z = x + y Python muuntaa automaattisesti x kellumaan tietojen menettämisen välttämiseksi Kanssa kelluva 0,6.
Eksplisiittisen tyypin muunnos
Selkeä muunnos (tai tyypin casting) on, kun muunnat arvon tietotyypin manuaalisesti Pythonin avulla sisäänrakennetut toiminnot . Tämä on hyödyllistä, kun haluat hallita, kuinka tietoja tulkitaan tai käsitellään koodissasi. Joitakin yleisiä valutoimintoja ovat:
- int() muuntaa arvon kokonaisluvuksi
- kellua() muuntaa arvon liukulukuksi
- str() muuntaa arvon merkkijonoksi
- bool() muuntaa arvon Boolen arvoksi (tosi/epätosi)
Esimerkki:
Pythons = '100' # String a = int(s) print(a) print(type(a))
Lähtö
100
Selitys: a = int(s) muunnamme sen eksplisiittisesti kokonaisluvuksi. Tätä manuaalista tyypin muutosta kutsutaan nimenomaiseksi tyypin muunnokseksi, ja a:sta tulee 100
Esimerkkejä yleisistä tyyppimuunnosfunktioista
Esimerkki 1: Binäärimerkkijonon muuntaminen
Pythons = '10010' a = int(s 2) print(a) b= float(s) print(b)
Lähtö
18 10010.0
Selitys:
- int(s 2) tulkitsee binäärimerkkijonon '10010' kokonaisluvuksi 18.
- kellua(t) muuntaa merkkijonon liukulukuksi.
Esimerkki 2: ASCII-heksadesimaali- ja oktaalimuunnos
Pythonc = '4' print('ASCII of '4':' ord(c)) print('56 in Hex:' hex(56)) print('56 in Octal:' oct(56))
Lähtö
ASCII of '4': 52 56 in Hex: 0x38 56 in Octal: 0o70
Selitys:
- sana(t) palauttaa merkin '4' ASCII-koodin.
- hex() ja lokakuu() muuntaa kokonaisluvun 56 sen heksadesimaali- ja oktaaliesitysmuodoiksi.
Esimerkki 3 : Merkkijono monikkojoukkoon ja listaan
Pythons = 'geeks' print('To tuple:' tuple(s)) print('To set:' set(s)) print('To list:' list(s))
Lähtö
To tuple: ('g' 'e' 'e' 'k' 's') To set: {'e' 'g' 'k' 's'} To list: ['g' 'e' 'e' 'k' 's'] Selitys:
- monikko(t) pitää kaikki merkit, myös kaksoiskappaleet, järjestyksessä.
- sarja(t) poistaa kaksoiskappaleet ja palauttaa järjestämättömän kokoelman.
- luettelo(t) palauttaa merkkiluettelon merkkijonosta.
Esimerkki 4: Muut muunnokset – monimutkainen merkkijonosanakirja
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))
Lähtö
To complex: (1+2j) To string: 1 To dict: {'a': 1 'f': 2 'g': 3} Selitys:
- monimutkainen (1 2) luo kompleksiluvun, jossa on reaaliosa 1 ja imaginaariosa 2.
- str(a) muuntaa kokonaisluvun 1 merkkijonoksi '1'.
- sanelu (tup) luo sanakirjan joukosta avainarvotupioita.