Hoofdstuk 3 · oefening
In gesprek met je programma
Je programma kan vragen stellen
Tot nu toe werkten je programma’s met waarden die rechtstreeks in de code stonden. Ze leveren steeds hetzelfde resultaat op, tenzij je de code aanpast.
Met de functie input() kan een draaiend Python-programma de persoon achter het toetsenbord om een waarde vragen.
name = input("What is your name? ")
print(name)
Dit programma is niet meteen klaar. Het pauzeert bij input() en wacht op een antwoord.
Voer je eerste interactieve programma uit
Klik op Run in de playground. In de terminal van het programma verschijnt:
What is your name?
Klik zo nodig in de terminal, typ je naam en druk op Enter. Python slaat wat je hebt getypt op in de variabele name en gaat daarna verder met de volgende instructie.
De terminal toont je antwoord terwijl je typt. Dat is normaal: zo kun je zien wat je invoert.
Als het programma niets lijkt te doen, kijk dan of je de cursor in de terminal ziet. Het wacht misschien gewoon op je antwoord. Je kunt een wachtend programma stoppen en daarna opnieuw uitvoeren.
input() stap voor stap
Bekijk de eerste instructie eens goed:
name = input("What is your name? ")
Python verwerkt die in deze volgorde:
Roep
input()aan.Toon de vraag tussen de haakjes.
Wacht tot de persoon een antwoord typt en op Enter drukt.
Geef dat antwoord terug als waarde.
Wijs de waarde toe aan
name.
De spatie vóór het sluitende aanhalingsteken in de vraag staat daar met opzet. Die zorgt voor wat ruimte tussen de vraag en het getypte antwoord.
Maak van het antwoord een begroeting
Het startprogramma drukt nu alleen de naam af. Vervang de tweede instructie door een f-string, zodat het programma een vriendelijke begroeting afdrukt.
Als de persoon Ada invoert, moet de laatste regel zijn:
Hello, Ada!
Gebruik de variabele name. Zet geen vaste persoonsnaam in de begroeting.
Voer het programma uit en probeer je eigen naam. Klik op Submit als het werkt.
Wat er gebeurt bij Submit
Je eigen antwoord is handig tijdens het uitproberen. Bij Submit voert Python Land het programma opnieuw uit met een afgeschermd testantwoord. Zo is de oefening eerlijk en herhaalbaar, zonder dat iedereen dezelfde naam hoeft te typen.
Je code moet dus werken met elk antwoord dat input() teruggeeft. Dat is precies de bedoeling van een interactief programma.
Als je abonnement Guided bevat, kun je Monty vragen:
Loop mijn programma na van de vraag tot de begroeting. Leg uit waar het getypte antwoord wordt opgeslagen, zonder mijn code te herschrijven.
Opdracht
Vervang de laatste printinstructie door een f-string die de naam begroet die input() teruggeeft.
Als het antwoord Ada is, moet de laatste regel zijn:
Hello, Ada!
Voer het programma uit, typ een antwoord in de terminal en druk op Enter. Stuur daarna je code in.