Typkonvertering innebär att ändra datatypen för ett värde. Till exempel konvertera ett heltal (5) till ett float (5.0) eller en sträng ('10') till ett heltal (10). I Python finns det två typer av typkonvertering:
- Implicit konvertering: Python ändrar datatypen av sig själv medan koden körs för att undvika misstag eller dataförlust.
- Explicit konvertering: Du ändrar datatypen med avsikt med hjälp av funktioner som int() float() eller str().
Implicit typkonvertering
I implicit konvertering Python konverterar automatiskt en datatyp till en annan under uttrycksutvärdering. Detta händer vanligtvis när en mindre datatyp som int kombineras med en större som float i en operation. Exempel:
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))
Produktion
x:y: z = 20.6 z :
Förklaring: x är ett heltal och och är en flöte. I z = x + y Python konverterar automatiskt x att flyta för att undvika dataförlust Med en flöte 0,6.
Explicit typkonvertering
Explicit konvertering (eller typ casting) är när du manuellt konverterar datatypen för ett värde med Pythons inbyggda funktioner . Detta är användbart när du vill kontrollera hur data tolkas eller manipuleras i din kod. Några vanliga typer av gjutning inkluderar:
- int() konverterar ett värde till ett heltal
- flyta() konverterar ett värde till ett flyttal
- str() konverterar ett värde till en sträng
- bool() konverterar ett värde till ett booleskt värde (sant/falskt)
Exempel:
Pythons = '100' # String a = int(s) print(a) print(type(a))
Produktion
100
Förklaring: a = int(s) vi konverterar det uttryckligen till ett heltal. Denna manuella typändring kallas explicit typkonvertering och en blir 100 av typen
Exempel på vanliga typkonverteringsfunktioner
Exempel 1: Konvertera en binär sträng
Pythons = '10010' a = int(s 2) print(a) b= float(s) print(b)
Produktion
18 10010.0
Förklaring:
- int(s 2) tolkar den binära strängen '10010' som heltal 18.
- flottör(ar) konverterar strängen till ett flyttal.
Exempel 2: ASCII hexadecimal och oktal konvertering
Pythonc = '4' print('ASCII of '4':' ord(c)) print('56 in Hex:' hex(56)) print('56 in Octal:' oct(56))
Produktion
ASCII of '4': 52 56 in Hex: 0x38 56 in Octal: 0o70
Förklaring:
- ord) returnerar ASCII-koden för tecknet '4'.
- hex() och okt() konvertera heltal 56 till dess hexadecimala respektive oktala representationer.
Exempel 3 : Sträng till Tuple Set och List
Pythons = 'geeks' print('To tuple:' tuple(s)) print('To set:' set(s)) print('To list:' list(s))
Produktion
To tuple: ('g' 'e' 'e' 'k' 's') To set: {'e' 'g' 'k' 's'} To list: ['g' 'e' 'e' 'k' 's'] Förklaring:
- tuppel(ar) håller ordning på alla tecken inklusive dubbletter.
- uppsättning(ar) tar bort dubbletter och returnerar en oordnad samling.
- lista(r) returnerar en lista med tecken från strängen.
Exempel 4: Andra konverteringar – Complex String Dictionary
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))
Produktion
To complex: (1+2j) To string: 1 To dict: {'a': 1 'f': 2 'g': 3} Förklaring:
- komplex(1 2) skapar ett komplext tal med reell del 1 och imaginär del 2.
- str(a) konverterar heltal 1 till strängen '1'.
- dikt (tup) skapar en ordbok från en sekvens av nyckel-värde-tupler.