Převod typu znamená změnu datového typu hodnoty. Například převod celého čísla (5) na float (5.0) nebo řetězce ('10') na celé číslo (10). V Pythonu existují dva typy převodu typů:
- Implicitní konverze: Python během spouštění kódu sám mění typ dat, aby se zabránilo chybám nebo ztrátě dat.
- Explicitní konverze: Datový typ měníte záměrně pomocí funkcí jako int() float() nebo str().
Implicitní převod typu
V implicitní konverze Python během vyhodnocování výrazů automaticky převádí jeden datový typ na jiný. K tomu obvykle dochází, když je v operaci kombinován menší datový typ, jako je int, s větším, jako je float. Příklad:
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))
Výstup
x:y: z = 20.6 z :
Vysvětlení: x je celé číslo a a je plovák. V z = x + y Python se automaticky převádí x plovoucí, aby nedošlo ke ztrátě dat S plovák 0,6.
Explicitní převod typu
Explicitní konverze (nebo přetypování) je, když ručně převedete datový typ hodnoty pomocí Pythonu vestavěné funkce . To je užitečné, když chcete řídit, jak jsou data ve vašem kódu interpretována nebo s nimi manipulováno. Některé běžné funkce odlévání typu zahrnují:
- int() převede hodnotu na celé číslo
- plovák() převede hodnotu na číslo s plovoucí desetinnou čárkou
- str() převede hodnotu na řetězec
- bool() převede hodnotu na booleovskou (pravda/nepravda)
Příklad:
Pythons = '100' # String a = int(s) print(a) print(type(a))
Výstup
100
Vysvětlení: a = int(s) explicitně jej převedeme na celé číslo. Tato ruční změna typu se nazývá explicitní konverze typu a stává se 100 typu
Příklady běžných funkcí převodu typů
Příklad 1: Převod binárního řetězce
Pythons = '10010' a = int(s 2) print(a) b= float(s) print(b)
Výstup
18 10010.0
Vysvětlení:
- int(s 2) interpretuje binární řetězec '10010' jako celé číslo 18.
- plovák(y) převede řetězec na číslo s plovoucí desetinnou čárkou.
Příklad 2: ASCII hexadecimální a osmičkové převody
Pythonc = '4' print('ASCII of '4':' ord(c)) print('56 in Hex:' hex(56)) print('56 in Octal:' oct(56))
Výstup
ASCII of '4': 52 56 in Hex: 0x38 56 in Octal: 0o70
Vysvětlení:
- slovo(a) vrátí ASCII kód znaku '4'.
- hex() a oct() převést celé číslo 56 na jeho hexadecimální a osmičkovou reprezentaci.
Příklad 3 : Řetězec na n-ticovou sadu a seznam
Pythons = 'geeks' print('To tuple:' tuple(s)) print('To set:' set(s)) print('To list:' list(s))
Výstup
To tuple: ('g' 'e' 'e' 'k' 's') To set: {'e' 'g' 'k' 's'} To list: ['g' 'e' 'e' 'k' 's'] Vysvětlení:
- n-tice udržuje všechny znaky včetně duplikátů v pořádku.
- sada(y) odstraní duplikáty a vrátí neuspořádanou kolekci.
- seznam(y) vrátí seznam znaků z řetězce.
Příklad 4: Jiné převody – Komplexní řetězcový slovník
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))
Výstup
To complex: (1+2j) To string: 1 To dict: {'a': 1 'f': 2 'g': 3} Vysvětlení:
- komplexní (1 2) vytvoří komplexní číslo s reálnou částí 1 a imaginární částí 2.
- str(a) převede celé číslo 1 na řetězec '1'.
- diktát (tup) vytvoří slovník ze sekvence n-tic klíč-hodnota.