Python Type Conversie & Casting onder de knie krijgen: Een uitgebreide gids
Python Type Conversie en Type Casting
In dit artikel leer je over type conversie en de toepassingen ervan.
Voordat je Type Conversie in Python leert, moet je kennis hebben over Python Datatypes.
Type Conversie
Het proces van het converteren van de waarde van één datatype (integer, string, float, etc.) naar een ander datatype heet type conversie. Python heeft twee typen type conversie.
- Impliciete Type Conversie
- Expliciete Type Conversie
Impliciete Type Conversie
Bij impliciete type conversie converteert Python automatisch één datatype naar een ander datatype. Dit proces vereist geen gebruikersbetrokkenheid.
Laten we een voorbeeld bekijken waar Python de conversie van het lagere datatype (integer) naar het hogere datatype (float) promoot om dataverlies te voorkomen.
Voorbeeld 1: Integer converteren naar float
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("datatype van num_int:", type(num_int))
print("datatype van num_flo:", type(num_flo))
print("Waarde van num_new:", num_new)
print("datatype van num_new:", type(num_new))
Wanneer we het bovenstaande programma runnen, is de output:
datatype van num_int: <class 'int'> datatype van num_flo: <class 'float'> Waarde van num_new: 124.23 datatype van num_new: <class 'float'>
In het bovenstaande programma:
- We voegen twee variabelen num_int en num_flo toe, en slaan de waarde op in num_new.
- We kijken naar het datatype van alle drie objecten respectievelijk.
- In de output zien we het datatype van num_int is een
integerterwijl het datatype van num_flo eenfloatis. - Ook zien we dat num_new een
floatdatatype heeft omdat Python altijd kleinere datatypes naar grotere datatypes converteert om dataverlies te voorkomen.
Nu laten we eens een string en een integer optellen, en kijken hoe Python ermee omgaat.
Voorbeeld 2: Optelling van string(hoger) datatype en integer(lager) datatype
num_int = 123
num_str = "456"
print("Datatype van num_int:", type(num_int))
print("Datatype van num_str:", type(num_str))
print(num_int + num_str)
Wanneer we het bovenstaande programma runnen, is de output:
Datatype van num_int: <class 'int'> Datatype van num_str: <class 'str'> Traceback (most recent call last): File "python", line 7, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str'
In het bovenstaande programma:
- We voegen twee variabelen num_int en num_str toe.
- Zoals we in de output zien, kregen we
TypeError. Python kan impliciete conversie in dergelijke situaties niet gebruiken. - Python heeft echter een oplossing voor dit type situaties, bekend als Expliciete Conversie.
Expliciete Type Conversie
Bij expliciete type conversie converteert de gebruiker het datatype van een object naar het vereiste datatype. We gebruiken voorgedefinieerde functies zoals int(), float(), str(), etc. om expliciete type conversie uit te voeren.
Dit type conversie heet ook typecasting omdat de gebruiker het datatype van de objecten cast (verandert).
Syntax:
<vereist_datatype>(expressie)
Typecasting kan gedaan worden door de vereiste datatype-functie toe te wijzen aan de expressie.
Voorbeeld 3: Optelling van string en integer met expliciete conversie
num_int = 123
num_str = "456"
print("Datatype van num_int:", type(num_int))
print("Datatype van num_str voor Type Casting:", type(num_str))
num_str = int(num_str)
print("Datatype van num_str na Type Casting:", type(num_str))
num_sum = num_int + num_str
print("Som van num_int en num_str:", num_sum)
print("Datatype van de som:", type(num_sum))
Wanneer we het bovenstaande programma runnen, is de output:
Datatype van num_int: <class 'int'> Datatype van num_str voor Type Casting: <class 'str'> Datatype van num_str na Type Casting: <class 'int'> Som van num_int en num_str: 579 Datatype van de som: <class 'int'>
In het bovenstaande programma:
- We voegen num_str en num_int variabele toe.
- We converteerden num_str van string(hoger) naar integer(lager) type met
int()functie om de optelling uit te voeren. - Na het converteren van num_str naar een integer-waarde, kan Python deze twee variabelen optellen.
- We kregen de num_sum waarde en datatype als integer.
Belangrijke Punten om te Onthouden
- Type Conversie is de conversie van een object van één datatype naar een ander datatype.
- Impliciete Type Conversie wordt automatisch uitgevoerd door de Python-interpreter.
- Python voorkomt dataverlies bij Impliciete Type Conversie.
- Expliciete Type Conversie heet ook Type Casting, de datatypes van objecten worden geconverteerd met voorgedefinieerde functies door de gebruiker.
- Bij Type Casting kan dataverlies optreden omdat we het object afdwingen tot een specifiek datatype.
Python
- C# type conversie: implicit, explicit, Parse en Convert methodes
- Python Keywords en Identifiers: Gereserveerde woorden en naamconventies onder de knie krijgen
- Python Statements, Indentatie en Comments: Een duidelijke gids
- Python Variabelen, Constanten en Literals – Een uitgebreide gids
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python I/O en Module Imports onder de knie krijgen: Een praktische gids
- Python Global, Local en Nonlocal Variabelen begrijpen
- Python getallen, typeconversie en wiskunde beheersen
- Python-directory en bestandsbewerkingen beheersen
- Python-fouten & ingebouwde exceptions beheersen
- Java Type Casting: Van widening tot narrowing en verder