← Alle talen
Py
Python 3.14 · BEGINNER

Jouw start met Python.

Van je eerste script tot slimme automatisering. Begin met de eerste bouwstenen.

01

De eerste bouwstenen

26 praktische stappen · 114 min

8 lessen
01

Laat je code spreken

Twee regels tekst uitvoeren

12 min
02

Geef je waarden een naam

Een berekening met variabelen maken

13 min
03

Maak tekst persoonlijk

Een waarde in tekst invoegen

12 min
04

Reken met volgorde en resten

De volgorde van een berekening met haakjes veranderen

16 min
05

Maak van tekst een getal

Het type van een waarde bekijken

15 min
06

Stel vragen aan je waarden

Een vergelijking als True of False afdrukken

14 min
07

Ruim tekst stap voor stap op

Spaties aan de randen van tekst verwijderen

14 min
08

Combineer je kennis in een tijdplanner

Tekstinvoer omzetten en in een bericht gebruiken

18 min
02

Kiezen en herhalen

32 praktische stappen · 163 min

8 lessen
01

Kies een route met if en else

Een voorwaarde in een if-blok gebruiken

18 min
02

Verdeel gevallen met elif

Drie elkaar uitsluitende routes maken

19 min
03

Maak een toegangsregel leesbaar

Een samengestelde regel in tussenstappen opdelen

18 min
04

Loop door getallen met range

Een for-lus met een exclusieve bovengrens schrijven

22 min
05

Laat een while-lus stoppen

Een lusvoorwaarde en voortgang samen ontwerpen

20 min
06

Stop of sla een ronde over

Een volledige lus met break verlaten

20 min
07

Bouw een overzicht met accumulators

Meerdere samenvattingen in één lus bijhouden

22 min
08

Vind iets, of bewijs dat het ontbreekt

Stoppen bij de eerste gevonden deler

24 min
03

Denken in functies

32 praktische stappen · 192 min

8 lessen
01

Laat een functie iets teruggeven

Een functie definiëren en aanroepen

20 min
02

Geef invoer mee met parameters

Parameters met argumenten vullen

22 min
03

Maak afspraken over argumenten

Defaultwaarden bewust gebruiken

24 min
04

Houd lokale namen lokaal

Lokale en buitenste namen onderscheiden

24 min
05

Geef samenhangende waarden samen terug

Een tuple als retourwaarde maken

24 min
06

Weiger ongeldige argumenten duidelijk

Een functiecontract met grenzen formuleren

26 min
07

Geef een functie aan een functie

Een functie zonder haakjes doorgeven

24 min
08

Bouw een berekening uit kleine functies

Een grotere berekening in functies opdelen

28 min
04

Verzamelen en veranderen

32 praktische stappen · 208 min

8 lessen
01

Verander een lijst bewust

Een lijst op positie lezen

24 min
02

Kies tussen een alias en een kopie

Slices met grenzen en stappen gebruiken

26 min
03

Pak vaste en variabele reeksen uit

Een tuple met één waarde maken

24 min
04

Koppel sleutels aan waarden

Waarden met een sleutel opzoeken

26 min
05

Werk met unieke waarden

Duplicaten met een set verwijderen

24 min
06

Bouw collecties met comprehensions

Een transformatie als list comprehension schrijven

26 min
07

Werk veilig met geneste gegevens

Rijen en velden gericht uitlezen

28 min
08

Beheer taken met duidelijke mutatieregels

Een lijst met taakdictionaries bijhouden

30 min
05

Tekst begrijpen en verwerken

32 praktische stappen · 227 min

8 lessen
01

Pak precies het stukje tekst dat je nodig hebt

Tekstposities vanaf het begin en het einde lezen

26 min
02

Verdeel tekst en verbind de onderdelen

Witruimte en expliciete veldgrenzen onderscheiden

26 min
03

Zoek tekst en verwijder alleen het bedoelde begin

Aanwezigheid van een deeltekst van haar index onderscheiden

26 min
04

Kies de weergave van tekst en getallen

Veldbreedte en precisie in een f-string gebruiken

28 min
05

Vergelijk tekst in een gezamenlijke Unicode-vorm

Codepunten van zichtbare tekens onderscheiden

28 min
06

Codeer tekst en lees bytes strikt terug

Echte bytes van tekst onderscheiden

28 min
07

Herken de hele afgesproken tekstvorm

Tekenklassen en vaste aantallen begrijpen

30 min
08

Lees materiaalregels en behoud de afwijzingen

Splitsen, normaliseren en herkennen combineren

35 min
06

Foutafhandeling

32 praktische stappen · 210 min

8 lessen
01

Een traceback als routekaart lezen

Het fouttype en de laatste eigen bewerking in een traceback vinden.

22 min
02

Een verwachte fout gericht afhandelen

De uitvoering door try en except volgen.

24 min
03

De juiste fout op de juiste plek opvangen

Verwachte fouten afhandelen en andere fouten doorgeven.

24 min
04

Succes en afsluiting een eigen plaats geven

De else-route alleen na een normaal geëindigde poging uitvoeren.

26 min
05

Fouten werpen, doorgeven en vertalen

Een ongeldige waarde met een echte fout weigeren.

28 min
06

Een eigen foutcategorie voor aantallen

Een eenvoudig eigen fouttype van ValueError laten afstammen.

28 min
07

Fouten zichtbaar houden zonder gegevensverlies

Een gewone fout vastleggen en hetzelfde object doorgeven.

28 min
08

Een invoerpijplijn met verklaarde afwijzingen

Verantwoordelijkheden scheiden tussen lezen, parseren, verzamelen en afsluiten.

30 min
07

Eigen typen

32 praktische stappen · 218 min

8 lessen
01

Klassen en afzonderlijke instanties

Een klasse en haar afzonderlijke instanties onderscheiden.

24 min
02

Beginwaarden bij iedere nieuwe instantie

__init__ gebruiken om objectattributen meteen in te stellen.

26 min
03

Methoden gebruiken de toestand van hun instantie

Een methode met self op de juiste instantie laten werken.

26 min
04

Een property bewaakt de geldige toestand

Lezen en schrijven aan een property koppelen.

28 min
05

Dataclasses nemen gegevenswerk over

Een echte dataclass met benoemde velden gebruiken.

28 min
06

Gelijke waarden en hetzelfde object onderscheiden

Waardegelijkheid en identiteit uit elkaar houden.

28 min
07

Objecten samenstellen en bewust delen

Een relatie tussen echte objecten modelleren.

28 min
08

Een reservering bewaakt haar eigen toestand

Een samenhangend object met eigen begintoestand maken.

30 min
08

Interfaces en typing

32 praktische stappen · 238 min

8 lessen
01

Een object gebruiken om wat het kan

Met verschillende onafhankelijke objecten dezelfde methode gebruiken.

29 min
02

Typeannotaties beschrijven een contract

Parameters en retourwaarden met echte typen annoteren.

28 min
03

Ontbrekende waarden met None beschrijven

Een mogelijk ontbrekend resultaat met een union annoteren.

27 min
04

Typeverbanden met generieke functies beschrijven

Een echte typeparameter in een functiedefinitie gebruiken.

30 min
05

Een gedragscontract benoemen met Protocol

Een echt Protocol met een methodedeclaratie maken.

30 min
06

Een bron en haar iterator onderscheiden

De voortgang van een bestaande iterator gebruiken.

30 min
07

Waarden pas leveren wanneer ze nodig zijn

Een echte generator stapsgewijs waarden laten leveren.

32 min
08

Een blok met openen en opruimen verbinden

Enter- en exitgedrag met echte foutgegevens implementeren.

32 min
09

Modules en tooling

32 praktische stappen · 275 min

8 lessen
01

Code over echte modules verdelen

Een eigen Pythonbestand als module importeren.

30 min
02

Importeren scheiden van een programma starten

De bijzondere naam __main__ uitleggen.

30 min
03

Modules groeperen in een pakket

Bestanden en volledige modulenamen met elkaar verbinden.

35 min
04

Een project beschrijven met pyproject.toml

Projectidentiteit en Pythonvereisten vastleggen.

30 min
05

Een eigen Pythonomgeving gebruiken

Een virtuele omgeving met de bestaande Python maken.

35 min
06

Met uv vastleggen, installeren en uitvoeren

Projectafspraken en een gegenereerde lockfile onderscheiden.

35 min
07

Standaardgereedschap en een echte afhankelijkheid

JSON met de standaardbibliotheek verwerken.

40 min
08

Een eigen installeerbaar CLI-pakket

Herbruikbare regels en commandoregelinvoer scheiden.

40 min
10

Testen

32 praktische stappen · 255 min

8 lessen
01

Een test moet een fout kunnen vinden

Een concrete verwachting met assert controleren.

25 min
02

Meerdere controles met unittest organiseren

Testmethoden in een unittest.TestCase verzamelen.

30 min
03

Echte testfuncties met pytest uitvoeren

Losse testfuncties door pytest laten vinden.

30 min
04

Eén afspraak met meerdere gegevens testen

Met pytest.mark.parametrize aparte testgevallen maken.

30 min
05

Iedere test met verse gegevens laten beginnen

Een pytest-fixture via een functieparameter aanvragen.

35 min
06

De juiste fout verwachten en andere fouten laten opvallen

Met pytest.raises een afgesproken fout verwachten.

35 min
07

Testgegevens kiezen rond groepen en grenzen

Invoer verdelen in groepen met verschillend afgesproken gedrag.

35 min
08

Tijd en uitvoer voorspelbaar testen met afhankelijkheden

Een klok en schrijver als functieargument doorgeven.

35 min
11

Bestanden en I/O

32 praktische stappen · 240 min

8 lessen
01

Een pad benoemen en de tekst van een bestand lezen

Een Path gebruiken voor bestandsnaam en extensie.

30 min
02

Bestanden in de juiste modus openen en weer sluiten

Lezen, vervangen, toevoegen en exclusief aanmaken onderscheiden.

30 min
03

Regels lezen en op tijd sluiten

Regels zonder afsluitende newline en met overige witruimte verzamelen

30 min
04

CSV lezen en schrijven zonder velden te verliezen

CSV met komma’s en aanhalingstekens verwerken

30 min
05

JSON-documenten bewaren en gericht fouten afhandelen

Geneste JSON-gegevens lezen en schrijven

30 min
06

Mappen doorzoeken en resultaten voorspelbaar ordenen

Gesorteerde relatieve bestandslijststrings met / teruggeven

30 min
07

Binaire bestanden byte voor byte behouden

Binaire I/O onderscheiden van tekstdecodering

30 min
08

Een nieuwe bestandsversie voorbereiden en veilig publiceren

Voorbereiden en publiceren van één bestand scheiden

30 min
12

Concurrency

32 praktische stappen · 240 min

8 lessen
01

Een coroutine maken en echt uitvoeren

Het verschil tussen een coroutinefunctie, een coroutineobject en een resultaat uitleggen.

30 min
02

Onafhankelijk werk als taken starten

Een coroutine met create_task als Task laten plannen.

30 min
03

Meerdere resultaten verzamelen met gather

Resultaten van onafhankelijke coroutines in de invoervolgorde verzamelen.

30 min
04

Verwant werk samen beheren met TaskGroup

Taken binnen een async context een gezamenlijke levensduur geven.

30 min
05

Stoppen afwachten en eigen middelen opruimen

Annulering als verzoek onderscheiden van een direct gestopte taak.

30 min
06

Wachten begrenzen zonder fouten te verwarren

Een async bewerking met een timeoutcontext begrenzen.

30 min
07

Werk begrenzen met een queue en tegendruk

Een begrensde async queue als FIFO-tussenbuffer gebruiken.

30 min
08

Een begrensde pipeline samenstellen

Een producent en een vast aantal workers met een begrensde queue verbinden.

30 min
13

Idiomatisch en performance

32 praktische stappen · 240 min

8 lessen
01

Samenhang zichtbaar maken met enumerate en zip

Een positie en waarde samen verwerken zonder een losse teller.

30 min
02

Een sortering uitleggen met een sleutel

Een nieuwe gesorteerde lijst van sorteren ter plaatse onderscheiden.

30 min
03

Alleen invoer lezen die je nodig hebt

Een begrensd voorstuk zonder extra bronlezing opvragen.

30 min
04

Functies uitbreiden zonder hun contract kwijt te raken

Een callable met een closure omwikkelen en argumenten doorgeven.

30 min
05

Functies voorbereiden en een toestand opbouwen

Een echte partial met vooraf ingevulde keywordargumenten maken.

30 min
06

Een herhaalbare meting opzetten met timeit

Totale meettijd van tijd per uitvoering onderscheiden.

30 min
07

Rekenwerk bewaren en de geheugenkosten begrijpen

Een lru_cache met maximaal twee bewaarde aanroepen gebruiken.

30 min
08

Een prijsrapport verbeteren en het gedrag bewijzen

Herhaalde zoekrondes door een prijsindex vervangen.

30 min
14

Eindproject: Urenrapport

32 praktische stappen · 280 min

8 lessen
01

Van projecteisen naar een invoercontract

Een projectafspraak onderscheiden van wat Python toevallig kan lezen.

35 min
02

Lezen, rekenen en schrijven verbinden

De regie over een programma onderscheiden van de afzonderlijke taken.

35 min
03

Een registratie als gecontroleerde waarde

Samenhangende projectgegevens in een frozen dataclass bewaren.

35 min
04

Een CSV-bron lezen met duidelijke foutcontext

De afgesproken CSV-kop en iedere gegevensrecord valideren.

35 min
05

Registraties selecteren en controleerbaar optellen

Een volledig rapport met metadata en teamtotalen opbouwen.

35 min
06

Een rapport eerst opbouwen en daarna publiceren

Een gewone uitvoernaam en het gekozen formaat controleren.

35 min
07

Een CLI met echte argumenten, uitvoer en foutstatus

Posities en opties naar de bestaande projectfuncties vertalen.

35 min
08

De hele opdracht met echte regressietests bewaken

Een volledige CLI-opdracht met echte bestanden testen.

35 min