← Python/De eerste bouwstenen
Les 5 van 8
MODULE 01 · 05◷ 15 min

Maak van tekst een getal

Na deze les kun je
  • Het type van een waarde bekijken
  • Tekst naar een geheel getal en kommagetal omzetten
  • Een getal als tekst aan een zin toevoegen

Een formulier kan het aantal deelnemers als tekst aanleveren, bijvoorbeeld "8". Voor een berekening heb je het getal acht nodig, niet alleen het teken dat erop lijkt. In deze les leer je die stap bewust maken en controleren met welk soort waarde je werkt.

De waarde heeft een type

Het type van een waarde bepaalt welke bewerkingen ermee mogelijk zijn. Je kent al tekst (str), gehele getallen (int) en getallen met een mogelijk decimaal deel (float). Aanhalingstekens maken van cijfers tekst: "8" is daarom een string en 8 een integer.

Met type(value) vraag je het type van een waarde op. Python toont dat bijvoorbeeld als <class 'str'>. Het woord class hoort bij die standaardweergave; voor nu hoef je alleen de typenaam te herkennen.

Een conversie zet een waarde om naar een ander type. Met int("8") krijg je een integer en met float("1.5") een float. De tekst moet bij de gewenste omzetting passen: voor dit voorbeeld staan er cijfers en eventueel een decimale punt in.

Een conversie levert een nieuwe waarde op. Bewaar die onder een naam wanneer je ermee verder wilt rekenen. De oorspronkelijke tekst verandert daardoor niet, zodat je die later nog kunt bekijken.

Rekenen met ingevulde gegevens

Dit voorbeeld verwerkt het aantal reizigers en de benodigde hoeveelheid drinkwater per reiziger. Bekijk eerst welk type de oorspronkelijke invoer heeft, en vergelijk daarna de drie resultaten.

Drinkwater voor acht reizigers
raw_count = "8"
raw_liters = "1.50"
print(type(raw_count))
count = int(raw_count)
liters = float(raw_liters)
print(count + 1)
print(liters * count)
print("Reizigers: " + str(count))
Verwachte uitvoer
<class 'str'>
9
12.0
Reizigers: 8

Voor count + 1 moet count een getal zijn; dan betekent + optellen. De hoeveelheid per persoon wordt een float, zodat de vermenigvuldiging ook een float oplevert. Python bewaart daarbij niet de oorspronkelijke schrijfwijze van de tekst: "1.50" wordt als getal 1.5.

Met str(count) zet je het aantal terug om naar tekst. Dat is nodig wanneer je met + twee stukken tekst aan elkaar plakt. Een f-string uit de les over tekst met waarden regelt die tekstweergave voor je, maar hier voer je de conversie bewust zelf uit.

Twee betekenissen van plus

Twee strings kun je met + samenvoegen en twee getallen kun je ermee optellen. Een string en een integer direct combineren geeft daarentegen een fout.

Tekst en een getal direct optellen
count = 8
print("Reizigers: " + count)
Verwachte fout
TypeError: can only concatenate str (not "int") to str

De TypeError vertelt dat deze bewerking niet werkt met de aangeboden typen. Het label is tekst, maar het aantal is een integer. Maak het aantal eerst tekst met str(count), of kies een f-string om het in het bericht in te vullen.

Kies de conversie op basis van wat je wilt doen. Om verder te rekenen zet je cijfertekst om naar een getal; om tekst samen te voegen zet je een getal om naar tekst. Alleen de foutmelding laten verdwijnen is niet genoeg: de nieuwe waarde moet passen bij je bedoeling.

Nu jij

De editor bevat een aantal en een prijs als tekst. Onderzoek het type, zet de waarden om voor de berekeningen en bouw vervolgens het gevraagde label. Houd de oorspronkelijke invoer beschikbaar onder de bestaande namen.

AAN DE SLAG 0/4
1

Herken de oorspronkelijke tekst

Toon het type van raw_count op regel 1 met type(). Verwacht: <class 'str'>.

2

Reken met het gehele aantal

Zet raw_count met int() om naar count. Toon count + 1 op regel 2: 13.

3

Vermenigvuldig een kommagetal

Maak price met float(raw_price). Toon price * count op regel 3: 30.0.

4

Bouw het label

Plak str(count) aan "Aantal: " en toon op regel 4 Aantal: 12.

Dit neem je mee

  • Het type bepaalt hoe Python een waarde kan gebruiken.
  • int(), float() en str() leveren een omgezette waarde op.
  • Een conversie verandert de oorspronkelijke tekst niet.

Hierna maak je vergelijkingen die geen bedrag of tekst opleveren, maar waar of onwaar.

main.py
UitvoerPython
›
›_

Hier komt je resultaat.

Voer je code uit en ontdek
wat je hebt gemaakt.

0/4 stappen
EVEN MEEKIJKEN

Bekijk hoe het kan.

Je mag de oplossing bekijken. Deze poging telt dan niet mee als afgeronde les. Met Reset kun je daarna opnieuw zelf oefenen.