05: Input

In de vorige les kwam input door de gebruiker aan de orde, maar we hebben niet echt uitgelegd hoe de invoer van de gebruiker wordt verkregen. In Python, typt de gebruiker één regel met invoer per keer. Je dient de input() functie gebruiken om een regel invoer van de gebruiker te verkrijgen. De input() functie heeft geen argumenten en geeft altijd een str  terug.

Via deze website, moet alle invoer worden gespecificeerd voordat het programma wordt uitgevoerd. Maar als je  Python thuis uitvoert dan zal na input() het programma pauzeren en wachten totdat de gebruiker een regel tekst intypt.

Hier is een voorbeeld van het gebruik van input() om invoer te verkrijgen. Het nakijkprogramma zal automatisch zelf de invoer voor het programma bepalen.

Voorbeeld
Echoën van een regel tekst.

Merk op dat in de laatste testcase, de tweede invoerregel niet werd ingelezen, vanwege het feit dat input() slechts één keer werd aangeroepen. Door input() meerdere malen aan te roepen, kun je meerdere regels invoeren.

Vanaf nu af aan kun je bij de meeste oefeningen je eigen testdata invoeren; hier volgt een eenvoudig voorbeeld. Zoals we in les 4 zagen, kan de string die via input() wordt verkregen worden omgezet in een int of indien gewenst in een float.

Voorbeeld
Bij het gebruik van input()
Type de invoer voor je programma hieronder in.

Probeer het volgende: druk op de knop Type invoer hierboven. Laat de input tekst venster leeg, of verwijder alle tekst die je hebt ingetypt. Druk dan op: Test uitvoeren. Je dient dan een foutmelding krijgen zoals:

EOFError: EOF when reading a line
De afkorting EOF staat voor End Of File (einde van het bestand).  Dit betekent dat wanneer het programma invoer probeert in te lezen, al de regels met invoer al zijn ingelezen (en dus op zijn), hetgeen leidt tot de foutmelding.

Bij de volgende oefening, wordt je gevraagd om het programma, dat niet werkt, te debuggen (de fout(en) eruit te halen) en te laten werken. Merk op dat de bug (fout) geen typefout is, maar eerder een logische fout: het ontwerp van het programma is niet correct, je moet het ontwerp enigszins aanpassen.

Programmeeroefening: Echo
Schrijf een programma dat één regel tekst inleest en dat diezelfde regel tweemaal afdrukt. Is bijvoorbeeld de invoer Echo dan dient de uitvoer te zijn:

Echo
Echo
Repareer de voorbeeldoplossing hier beneden . (Of wis de hele voorbeeldoplossing en begin opnieuw.)  Hint
Type de invoer voor je programma hieronder in.

Je kunt doorgaan met de volgende les Die gaat over if-opdrachten.