Cursus
In tegenstelling tot gecompileerde talen zoals C++ of Java, die vóór uitvoering naar machinecode moeten worden vertaald, wordt Python geïnterpreteerd en voert het instructies direct uit. Hierdoor is de REPL-omgeving bij uitstek geschikt om mee te experimenteren, of je nu snippets test, nieuwe concepten verkent of regel voor regel debugt. Het voordeel is dat hij standaard bij elke Python-installatie zit, dus hij is klaar wanneer jij dat bent.
In deze tutorial laat ik je met voorbeelden zien hoe je de Python REPL-omgeving gebruikt, verkennen we de functies en alternatieve REPLs om je workflow te verbeteren. Als je net begint met Python, raad ik je onze cursus Introduction to Python aan, waarin vaardigheden aan bod komen zoals datatypen, lijsten, basisfuncties en pakketten.
Wat is een Python REPL?
De REPL-sessie staat voor Read-Eval-Print Loop en beschrijft de vier fundamentele stappen:
- Read: De REPL-omgeving leest de invoer van de gebruiker, die uit één regel code of een meerregelige instructie kan bestaan.
- Evaluate: De code wordt geëvalueerd, de instructie of expressie wordt uitgevoerd en het resultaat wordt berekend.
- Print: Deze stap print het resultaat van de evaluatie naar de console. Als de code geen uitvoer produceert, zoals bij een toewijzingsinstructie, wordt er niets geprint.
- Loop: De REPL springt terug naar het begin en is klaar voor de volgende invoerregel.
Deze stappen werken continu samen en creëren een interactieve omgeving waarin je code kunt typen en direct de uitvoer ziet. De REPL van Python toont een primair prompt >>> voor nieuwe statements en een secundair prompt ... voor vervolgregels, zoals binnen lussen of functiedefinities. Met voorbeelden in de secties hieronder bekijken we hoe deze prompts werken.
De termen "interactieve shell", "interpreter-sessie" en "REPL" worden vaak door elkaar gebruikt om deze omgeving te beschrijven.
Waarom een Python REPL gebruiken
Je kunt een Python REPL gebruiken voor de volgende taken:
Snel codefragmenten en library-functies testen: Je kunt direct kleine stukjes code proberen zonder een scriptbestand te maken.
>>> import math
>>> math.sqrt(16)
4.0
Syntax verkennen en met ideeën experimenteren: Zie de REPL-omgeving als je eigen sandbox. Je kunt nieuwe dingen uitproberen, zoals verschillende datatypen, operatoren en controlflow-structuren, om precies te zien hoe ze zich gedragen zonder risico een groter programma te verstoren.
>>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]
Debuggen en variabelen inspecteren: Je kunt de REPL-sessie gebruiken om stap voor stap de waarden en toestanden van je variabelen te controleren, wat het veel eenvoudiger maakt om problemen te begrijpen en op te lossen.
>>> x = 42
>>> type(x)
<class 'int'>
>>> x / 7
6.0
Gebruiken als rekenmachine of leermiddel: De directe resultaten maken het handig voor berekeningen of om de basis van Python te leren.
>>> 10 * (5 + 2)
70
Een REPL-sessie starten en afsluiten
Om een Python REPL-sessie te starten, open je je terminal of opdrachtprompt. Typ vervolgens python of python3 en druk op Enter. Hiermee start je de interactieve shell.
Je kunt ook een interactieve sessie starten na het uitvoeren van een script met de -i-vlag. Bijvoorbeeld, python -i calc_tax.py voert calc_tax.py uit en zet je daarna in de REPL-omgeving met de variabelen van het script nog in het geheugen geladen.
Om de REPL af te sluiten, kun je een van de volgende commando's gebruiken:
-
Typ
quit()ofexit()en druk vervolgens op Enter. -
Op Unix/Linux/macOS druk je op Ctrl+D.
-
Op Windows druk je op Ctrl+Z en vervolgens op Enter.
Code uitvoeren in de REPL-omgeving
Je kunt code in Python’s REPL-sessies op verschillende manieren uitvoeren, afhankelijk van de complexiteit. Laten we kijken naar het volgende type code dat je in REPL kunt draaien.
Eenvoudige statements en expressies
De REPL-omgeving kan eenvoudige expressies en statements direct evalueren. Je kunt bijvoorbeeld rekenkundige bewerkingen uitvoeren, variabelen toewijzen en Booleaanse expressies evalueren. Het resultaat van een expressie wordt automatisch geprint.
>>> 5 + 4
9
>>> name = "Allan"
>>> name
'Allan'
>>> 10 > 5
TrueAls een statement, zoals een variabele-toewijzing, geen output produceert, print de REPL-interpreter niets. Als je een fout maakt, geeft de REPL direct feedback door een foutmelding te genereren.
Samengestelde statements
De Python REPL-omgeving kan ook meerregelige samengestelde statements aan zoals if-statements en for-lussen. Hij schakelt automatisch over naar de secundaire prompt (...) nadat je een regel typt die eindigt met een dubbele punt (:) en op Enter drukt, wat aangeeft dat hij wacht op het ingesprongen codeblok.
Let op dat je je code handmatig moet inspringen; de REPL-omgeving springt niet automatisch in. Om het einde van het samengestelde statement aan te geven, druk je op Enter op een lege regel.
Expliciete en impliciete regeleinden
Je kunt in de Python REPL-sessie ook meerregelige statements schrijven met regeleinden. Een expliciet regeleinde gebruikt een backslash \ aan het einde van een regel om aan te geven dat het statement doorgaat op de volgende regel.
Impliciete regeleinden treden automatisch op wanneer de code is ingesloten tussen haakjes (), vierkante haken [] of accolades {}.
Printen vs evalueren
De auto-printfunctie van de REPL werkt alleen bij expressies met een returnwaarde. Als je bijvoorbeeld een item aan een lijst toevoegt met temp.append(45), levert dat geen uitvoer op. Om de nieuwe lijst te zien, moet je de lijstvariabele expliciet op de volgende regel evalueren. Voor functies die None retourneren, moet je print() gebruiken om hun output te zien.
Handige REPL-functies
De Python REPL-omgeving heeft verschillende ingebouwde functies die het gebruik en leren productiever maken. Ik bespreek enkele functies die ik nuttig vind.
Speciale variabele _
De underscore (_) is een speciale variabele in de REPL-sessie die het resultaat van de laatst geëvalueerde expressie opslaat. Dit is handig als je resultaten opnieuw wilt gebruiken zonder ze opnieuw te typen.
In het onderstaande voorbeeld slaat _ de waarde 30 op, het resultaat van de expressie 6*5.
Introspectietools
Python biedt verschillende ingebouwde functies om interactief objecten en je omgeving te exploreren. De onderstaande tabel vat het gebruik van elke functie samen met voorbeelden.
|
Tool |
Doel |
Voorbeeld |
|
|
Geeft een lijst terug met alle namen (attributen en methoden) in de huidige lokale scope of van een opgegeven object. |
|
|
|
Start het ingebouwde helpsysteem voor een object, module of functie en toont de documentatie (docstrings). |
|
|
|
Geeft het |
|
|
|
Geeft een dictionary terug die de huidige lokale symbooltabel voorstelt (variabelen in de huidige scope). |
|
|
|
Geeft een dictionary terug die de huidige globale symbooltabel voorstelt (variabelen overal toegankelijk). |
|
Codegeschiedenis en tab-completion
De REPL versnelt het coderen met de volgende geschiedenis- en autocompletion-functies:
- Codegeschiedenis: Je kunt door eerder ingevoerde commando's navigeren met de pijltjestoetsen omhoog en omlaag. Zo kun je snel eerdere regels opnieuw uitvoeren, aanpassen of corrigeren.
- Tab-completion: Dit helpt bij het aanvullen van variabelenamen, modulenaam en objectattributen. Als je bijvoorbeeld
importypt en dan op Tab drukt, wordt dit automatisch aangevuld totimport, of als jestr..typt en op Tab drukt, krijg je een lijst met stringmethoden.
Sneltoetsen
Hieronder vind je enkele veelvoorkomende sneltoetsen die het navigeren in de REPL efficiënter maken.
|
Sneltoets |
Actie |
|
Ctrl+C |
Onderbreekt de huidige uitvoering, zoals een lange lus, en werpt een |
|
Ctrl+D (Unix) |
REPL afsluiten (zelfde als |
|
Ctrl+Z + Enter (Win) |
REPL afsluiten |
|
Ctrl+L |
Leegt het scherm (zoals het commando |
|
Pijl omhoog / omlaag |
Bladeren door commandogeschiedenis |
|
Ctrl+A |
Verplaats de cursor naar het begin van de regel |
|
Ctrl+E |
Verplaats de cursor naar het einde van de regel |
|
Ctrl+K |
Verwijder vanaf de cursor tot het einde van de regel |
|
Ctrl+U |
Verwijder vanaf de cursor tot het begin van de regel |
De REPL aanpassen
De standaard Python REPL kun je aanpassen aan je workflow en voorkeuren.
Opstartbestand
Stel de omgevingsvariabele PYTHONSTARTUP in op het pad naar een Python-script dat automatisch wordt uitgevoerd wanneer de REPL start. Dit script kan veelgebruikte modules vooraf importeren, functies definiëren of promptstrings wijzigen.
Maak bijvoorbeeld een bestand ~/.pystartup met de volgende inhoud:
import sys, os, math, random
print("Custom REPL ready. Pre-imported: sys, os, math, random")
# Change the prompt strings
import sys
sys.ps1 = ">>> "
sys.ps2 = "... "
Als je Windows gebruikt, kun je de omgeving instellen met het volgende commando:
setx PYTHONSTARTUP "C:\path\to\pystartup.py"
Rijke output met rich
Je kunt de rich-bibliotheek gebruiken om de output in de REPL te verfraaien en te kleuren. Je moet eerst de rich-module installeren via pip.
pip install rich
Schakel rich vervolgens in met import en gebruik het in je Python REPL-sessies. In het onderstaande voorbeeld heb ik de bibliotheek gebruikt om woorden in verschillende letterkleuren te printen.

Voorbeelden van REPL-commando's om te proberen
Zoals je ziet is de REPL-sessie van Python eenvoudig te gebruiken. Probeer de volgende commando's om je vaardigheden te oefenen
|
Commando |
Doel |
Uitvoer/Beschrijving |
|
|
Introspectie: bekijk alle methoden en attributen die beschikbaar zijn op het ingebouwde type |
|
|
|
Documentatie: toon de docstring voor de append-methode van het list-object, met uitleg over hoe het werkt. |
Een gedetailleerde beschrijving van wat |
|
|
Module importeren: laad de standaardbibliotheek |
Geen uitvoer (maar de module is nu beschikbaar). |
|
|
Berekening: haal de waarde van π op. |
|
|
|
Berekening: bereken sin(π/2). |
|
|
|
Snelle test: kies een willekeurig item uit een lijst. |
|
|
|
Foutafhandeling/afsluiten: start een oneindige lus en druk vervolgens op Ctrl+C om te onderbreken en af te sluiten. |
|
Beperkingen van de standaard REPL-omgeving
Hoewel de standaard REPL-omgeving van Python geweldig is voor snelle taken, voelt hij vaak beperkt vergeleken met een moderne IDE. Je zult al snel een paar ontbrekende functies merken, waaronder het volgende:
- Geen syntax highlighting: Al je code verschijnt als platte tekst. Hierdoor is het lastig om visueel snel onderscheid te maken tussen keywords, strings en commentaar, waardoor je nauwkeuriger moet lezen.
- Minimale auto-inspringing: Hoewel het de vervolgprompt (
...) afhandelt, moet je de juiste inspringing voor samengestelde statements, zoals if- en for-blokken, handmatig invoeren. - Basale codecompletion: De ingebouwde tab-completion werkt, maar biedt niet de contextbewuste suggesties, inline documentatie of fuzzy matching die je in geavanceerde shells vindt.
- Slechte meerregelige bewerking: Het bewerken van complexe, meerregelige codeblokken is omslachtig.
- Zodra een blok is ingediend, kan het niet eenvoudig worden bewerkt of uit de geschiedenis worden teruggehaald.
Alternatieve REPLs
Om de bovenstaande beperkingen van de standaardinterpreter te omzeilen, bieden verschillende verbeterde REPLs en omgevingen, gebouwd op het interactieve model van Python, extra functies die de productiviteit en het leren verbeteren. Ik raad aan om een van de volgende uit te proberen en te kijken welke bij je past.
- IDLE: Een eenvoudige, GUI-gebaseerde Python-omgeving die met Python zelf wordt meegeleverd. Biedt syntax highlighting, een geïntegreerde editor en een debugger, en is gebruiksvriendelijk voor beginners.
- IPython: Een krachtige REPL met uitgebreide tab-completion, syntax highlighting, magic commands (speciale commando's die met % beginnen), uitgebreide geschiedenis en eenvoudige toegang tot shell-commando's. Veelgebruikt in data science en wetenschappelijk rekenen.
- bpython: Dit is een terminalgebaseerde REPL met inline syntax highlighting, autosuggesties en snelle toegang tot documentatie. Lichtgewicht, maar met beduidend meer gebruiksgemak dan de standaard REPL.
- ptpython: Ontworpen voor ervaren gebruikers; een geavanceerde REPL met echte meerregelige bewerking, robuuste syntax highlighting en zelfs muisondersteuning, voor meer controle in de terminal.
- Online REPLs: Browsergebaseerde omgegevingen zoals de interactieve shell van Python.org en Python Morsels REPL zijn ideaal voor snel testen, code delen of oefenen onderweg.
Conclusie
De Python REPL-sessie biedt een snelle, interactieve omgeving om met code te experimenteren en is van onschatbare waarde voor testen, leren en het verkennen van ideeën. Door de ingebouwde functies onder de knie te krijgen, heb je een krachtig hulpmiddel voor dagelijkse programmeertaken. Voor complexere workflows of meer gebruiksgemak kunnen geavanceerde REPL-alternatieven de interactieve codeerervaring verder verbeteren.
Voor een grondig begrip van Python kun je meer leren via onze skill tracks Python Data Fundamentals en Python Programming Fundamentals. De Python Cheat Sheet for Beginners is ook handig als je in één oogopslag wilt zien hoe je een lijst splitst in Python.
FAQs
Hoe start ik de Python REPL?
Open je terminal en typ python of python3, afhankelijk van je systeem.
Hoe sluit ik de REPL af?
Typ quit() of exit(), of gebruik Ctrl+D op Unix of Ctrl+Z + Enter op Windows.
Wat is het verschil tussen de REPL en een script uitvoeren?
De REPL voert code interactief regel voor regel uit, terwijl een script alle code in een bestand in één keer uitvoert.
Wat is de variabele _ in de REPL?
_ bevat het resultaat van de laatst geëvalueerde expressie, zodat je het snel kunt hergebruiken.
Wat betekenen de prompts >>> en ...?
>>> is de primaire prompt en ... is de secundaire prompt voor meerregelige invoer.

