05: Invoer

In de vorige les kwam invoer 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 functie input() te gebruiken om een regel invoer van de gebruiker te verkrijgen. De functie input() neemt geen argumenten en geeft altijd een str (een tekenreeks) terug als resultaatwaarde.

Op deze website moet alle invoer worden gespecificeerd voordat het programma wordt uitgevoerd. Maar als je Python thuis uitvoert dan zal 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.

Van 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
Het gebruik van input()
Tik de invoer voor je programma hieronder in.

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

EOFError: EOF when reading a line
De afkorting EOF staat voor End Of File (einde van het bestand). Deze foutmelding krijg je als je programma invoer probeert te lezen wanneer het einde van de invoer al bereikt is.

Bij de volgende oefening wordt je gevraagd om het programma, dat niet werkt, te debuggen (de fout(en) eruit te halen) en te doen 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 dan diezelfde regel tweemaal afdrukt. Is bijvoorbeeld de invoer Echo dan dient de uitvoer te zijn:

Echo
Echo
Corrigeer de voorbeeldoplossing. (Of wis de hele voorbeeldoplossing en begin opnieuw.)Hint
Tik de invoer voor je programma hieronder in.

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