0%

Meer expressieve functies

Maak kennis met de REPL van Python

Tot nu toe heb je meestal een volledig programma in de editor geschreven en daarna op Run geklikt. Dat werkt goed wanneer meerdere regels bij elkaar horen. Soms wil je echter alleen één klein stukje Python proberen en het resultaat meteen zien.

Het paneel naast deze les biedt een andere manier om met Python te werken: de REPL. De naam wordt vaak uitgesproken als “reppel”.

REPL staat voor:

  • Read: lees de Python-code die je hebt ingevoerd;

  • Evaluate: evalueer de code door die uit te voeren en het resultaat te bepalen;

  • Print: toon dat resultaat wanneer er een is;

  • Loop: begin opnieuw en wacht op meer code.

Een expressie zoals 2 + 3 evalueert naar de waarde 5. De REPL toont die waarde en wacht daarna op meer code. Er is geen verborgen truc: Python bepaalt het resultaat en de REPL toont het.

Elke volledige regel of elk volledig blok dat je invoert, wordt geëvalueerd. Sommige code, zoals een toewijzing of functiedefinitie, voert een taak uit maar levert geen waarde op die de REPL kan tonen. In dat geval toont de REPL alleen de volgende prompt.

Je hoeft de vier woorden achter REPL niet uit je hoofd te leren. Zie het als een gesprek: je geeft Python wat code, Python evalueert die, toont een eventueel resultaat en wacht dan op wat je hierna invoert.

Lees de prompts

Wanneer de REPL klaarstaat, toont die deze prompt:

>>>

De prompt betekent “Python is klaar”. Je typt erna. Typ de drie tekens > niet zelf.

Probeer dit in de REPL in te voeren:

2 + 3

De volledige uitwisseling ziet er zo uit:

>>> 2 + 3
5
>>> 

Python leest 2 + 3 en evalueert de expressie. Het resultaat daarvan is de waarde 5, dus de REPL toont 5 en daarna een nieuwe prompt.

Expressies tonen hun waarden

In een programma roep je meestal print() aan wanneer je een waarde wilt zien. De REPL toont automatisch de waarde die ontstaat bij het evalueren van een expressie. De Print in REPL beschrijft die weergavestap; het betekent niet dat de REPL stiekem een aanroep van print() aan je code toevoegt.

Probeer deze expressies één voor één:

"python land".title()
len([10, 20, 30])
10 > 4

De stringmethode .title() geeft een nieuwe string terug waarin elk woord met een hoofdletter begint. Hier geeft die je één concrete methode om te verkennen; de REPL toont de teruggegeven waarde meteen.

Je kunt nog steeds print() in de REPL gebruiken, maar voor een snel experiment is dat vaak niet nodig.

Namen blijven beschikbaar

Wijs nu een waarde toe aan een naam:

course = "Python Fundamentals II"

De REPL toont geen resultaat voor een toewijzing. Dat betekent niet dat die is mislukt. Voer de naam op de volgende regel in:

course

De REPL onthoudt course en toont de waarde. Waarden en functies blijven beschikbaar zolang de REPL-sessie draait. De knop Restart start een nieuwe sessie en wist ze.

Je kunt ook op de pijl omhoog drukken om een eerder ingevoerde opdracht terug te halen. Dat is handig wanneer je die wilt aanpassen en opnieuw proberen.

Voer een functie over meerdere regels in

Een functiedefinitie heeft meer dan één regel nodig. Voer de eerste regel in:

def double(number):

De prompt verandert van >>> in .... Deze vervolgprompt betekent dat Python wacht op de rest van de definitie. Voer het ingesprongen blok in:

    return number * 2

Druk daarna nog één keer op Enter op de lege regel met .... De lege regel vertelt de REPL dat de functiedefinitie klaar is.

De volledige uitwisseling ziet er zo uit:

>>> def double(number):
...     return number * 2
...
>>> double(6)
12

De prompts >>> en ... horen bij de REPL-weergave. Ze horen niet bij de Python-code van de functie.

Een fout beëindigt de sessie niet

Als één instructie mislukt, toont de REPL de fout en keert daarna terug naar >>>. Je kunt de instructie corrigeren en verder experimenteren. Waarden die je eerder maakte, blijven beschikbaar.

Gebruik Restart als je alles wilt wissen en opnieuw wilt beginnen.

Wat moet je typen wanneer de REPL >>> toont en je 4 + 5 wilt berekenen?

Verken voordat je verdergaat

Gebruik de REPL om een waarde te berekenen, er één in een naam op te slaan en één kleine functie te definiëren. Probeer ook de pijl omhoog en Restart.

De volgende les houdt de REPL open en gebruikt die om documentatie binnen functies te bekijken.