0%

In gesprek met je programma

Invoer is altijd tekst

input() geeft je programma altijd een string terug. Dat geldt ook als iemand cijfers typt.

In de playground staat:

answer = input("Type any number: ")
print(answer)
print(type(answer))

Klik op Run, voer 42 in en druk op Enter. Op de laatste regel verschijnt:

<class 'str'>

De persoon typte cijfers, maar Python sloeg het antwoord op als tekst.

Waarom invoer begint als tekst

Een toetsenbord stuurt tekens. Python kan niet weten wat die tekens voor jouw programma betekenen.

Neem het antwoord 2026. Dat kan staan voor:

  • een jaartal waarmee je wilt rekenen;

  • een deel van een accountnaam;

  • een deurcode die tekst moet blijven;

  • een getal in een zin.

Python laat die keuze aan de programmeur. input() verzamelt de tekens als string. Je code kan die string omzetten wanneer er een getal nodig is.

Tekst die op een getal lijkt

Deze waarden zijn verschillend:

"42"
42

De eerste is een string. De tweede is een geheel getal. In de uitvoer kunnen ze op elkaar lijken, maar je kunt er verschillende bewerkingen mee uitvoeren.

Als je het gehele getal 1 rechtstreeks probeert op te tellen bij tekst die input() teruggeeft, meldt Python een TypeError:

age = input("How old are you? ")
next_age = age + 1

Python raadt niet of je tekst of een berekening bedoelde. Die strenge regel voorkomt veel fouten die anders onopgemerkt blijven.

Iemand typt 12 als antwoord op input(). Welk type geeft Python terug?

Voer het startprogramma uit met verschillende antwoorden. Probeer 42, 3.5 en een woord. type(answer) geeft telkens str aan.

Hierna bekijk je hoe functieaanroepen werken. Daarna gebruik je een aanroep om getypte tekst om te zetten in een geheel getal.

Opdracht

Voer het programma een paar keer uit. Voer een geheel getal, een decimaal getal en een woord in. Let erop dat input() elke keer een string teruggeeft. Maak daarna de quiz en klik op Next om verder te gaan.