Typeconversie helpt je om een waarde, zoals een tekst, om te zetten naar een ander type, zoals een getal. Dit is belangrijk om ervoor te zorgen dat je programma goed werkt en geen fouten maakt als je verschillende soorten gegevens met elkaar wilt gebruiken.
Doorheen het leerpad heb je vaak gebruik gemaakt van typeconversie bij het vragen naar invoer van de gebruiker. De
input()
-functie in Python leest bijvoorbeeld alles wat je typt in als een string, zelfs als je een getal invoert.
Stel dat je de gebruiker wil vragen naar naar de prijs van een product en je wil, wegens de soldenperiode, de prijs verlagen met 10%:
# input() leest de leeftijd in als tekst (string)
prijs = input("Geef de prijs van een product: ")
prijs = prijs * 0.9
Het programma crasht omdat je geen typeconversie gebruikt. De ingelezen prijs is een string en kan je niet vermenigvuldigen met een kommagetal.
Door de typeconversiefunctie float()
te gebruiken, maak je de invoer bruikbaar voor je berekening, en zo zorg je ervoor
dat je programma doet wat je wilt.
# Eerst de tekst omzetten naar een getal met int()
prijs = float(input("Geef de prijs van een product: "))
prijs = prijs * 0.9
print(f"De soldenprijs bedraagt € {prijs}")
int()
: Converteert een waarde naar een integer (een geheel getal). Je gebruikt dit vaak om tekst die een geheel
getal bevat om te zetten in een bruikbaar getal voor berekeningen.getal_als_tekst = "100"
getal_als_int = int(getal_als_tekst)
print(getal_als_int + 50) # Uitvoer: 150
float()
: Converteert een waarde naar een float (een getal met decimalen). Dit is nodig als je met kommagetallen
wilt werken, bijvoorbeeld bij geld of metingen.getal_als_int = 15
getal_als_float = float(getal_als_int)
print(getal_als_float / 2) # Uitvoer: 7.5
str()
: Converteert een waarde naar een string. Dit is handig als je een getal of een andere waarde wilt toevoegen
aan een zin.leeftijd = 25
zin = "Ik ben " + str(leeftijd) + " jaar oud."
print(zin) # Uitvoer: Ik ben 25 jaar oud.
Een veelgemaakte fout, vooral bij beginners, is om uit gemakzucht getallen standaard naar float te converteren. Hoewel het in sommige gevallen nuttig is, kan dit in andere gevallen juist tot problemen leiden.
Floats worden gebruikt om getallen met decimalen weer te geven, zoals 3.14
of 9.99
. Maar computers slaan deze waarden
op een specifieke manier op, wat soms kan leiden tot afrondingsfouten. Hierdoor kan een eenvoudige berekening een
onverwacht resultaat opleveren.
getal = 0.1 + 0.2
print(getal)
Je verwacht nu waarschijnlijk 0.3
als uitkomst. Maar de output is eigenlijk:
0.30000000000000004
Dit komt door hoe floats intern in binaire code worden opgeslagen. Bij financiële berekeningen, waar elke cent telt, kan dit tot problemen leiden.
Een goede vuistregel:
Als het getal nooit cijfers na de komma kan hebben, gebruik dan int
.
Bijvoorbeeld: als je de gebruiker vraagt om een zijde van een dobbelsteen, dan kan een zinnig antwoord nooit
cijfers na de komma hebben. Als je echter vraagt naar de prijs van een product, ben je vrij zeker dat er cijfers na de
komma mogelijk zijn. Hier is int
dan een minder goede keuze.
Als je invoer van een gebruiker krijgt die je wilt gebruiken in een berekening, overweeg dan zorgvuldig of je int()
of
float()
moet gebruiken. Dit voorkomt onnodige fouten en maakt je code betrouwbaarder.