🐍Programmeren in Python
Zelfstudie met uitleg, oefeningen en quizzen. Je typt je Python-code in het vak en voert ze meteen in je browser uit: van je eerste print() tot een compleet spel.
Overzicht
Werk de onderdelen hieronder in je eigen tempo af: lees de uitleg, doe het opzoekwerk en sluit af met een quizje. Klik een onderdeel open om te starten.
Waarom leer je programmeren, waarom kiezen we Python en uit welke bouwstenen bestaat elk programma?
Waarom programmeren?
Welkom in de cursus programmeren! Misschien vraag je je af: waarom is het belangrijk om te kunnen programmeren? Kort door de bocht: het hoort bij de opleiding Industriële ICT. Maar ook los daarvan zijn er goede redenen:
- Baankansen: bedrijven zoeken mensen die met één of meer programmeertalen uit de voeten kunnen, en er zijn te weinig opgeleide mensen.
- Leren falen: een programma werkt of het werkt niet. Door veel fouten te maken en te herstellen kom je steeds een stapje verder. Falen is noodzakelijk om te leren.
- Kritisch denken en problemen oplossen: programmeren draait om het doorgronden van complexe problemen en het logisch bedenken van een creatieve oplossing (computational thinking).
- Maken: het is een manier om je ideeën tot leven te wekken: een spel, een tool, een app.
- Snappen hoe de wereld werkt: wie weet hoe een algoritme werkt, begrijpt beter hoe een “filterbubbel” of een aanbeveling op sociale media ontstaat.
Waarom Python?
Er bestaan honderden programmeertalen. De structurele manier van denken blijft in bijna alle talen dezelfde; alleen de schrijfwijze verschilt hier en daar. Toch kiezen we, zeker om te beginnen, voor Python:
- Het is één van de meest gebruikte programmeertalen ter wereld.
- Het wordt gebruikt voor heel diverse toepassingen: webapplicaties, games, interne tools, wetenschappelijk onderzoek, kunstmatige intelligentie, Raspberry Pi, …
- Python is efficiënt: je programma doet meer met minder regels code en is makkelijk te lezen en te debuggen.
- Het is gratis en werkt op Windows, macOS en Linux.
- Er is een grote, behulpzame community van beginnende en ervaren programmeurs.
Python is niet genoemd naar de slang maar naar het favoriete televisieprogramma van zijn bedenker Guido van Rossum: Monty Python’s Flying Circus. Hij zocht een naam die kort, uniek en een beetje mysterieus was.
De vier basisstructuren
Elk computerprogramma is opgebouwd volgens een bepaalde logica. Een goed gestructureerd programma gebruikt vier basisstructuren:
| Structuur | Wat het doet | In Python |
|---|---|---|
| 1. Sequentie | alle regels worden stap voor stap na elkaar uitgevoerd | gewone regels code |
| 2. Selectie | een keuze maken: voorwaardelijk uitvoeren | if, elif, else |
| 3. Iteratie | herhalen | for, while |
| 4. Genest | een combinatie van de vorige (bv. een if in een for) | ze in elkaar zetten |
In deze cursus bouwen we ze op in die volgorde. Eerst leren we werken met getallen, tekst en lijsten en schrijven we programma’s die gewoon regel na regel lopen (sequentie). Daarna leren we keuzes maken (selectie) en herhalen (iteratie).
Zo werkt deze cursus
- In de “Probeer zelf”-blokken pas je Python-code aan en klik je op ▶ Uitvoeren. Je code draait meteen in je browser; je hoeft niets te installeren om te oefenen.
- Vraagt je programma iets met
input()? Typ dan in het vak Invoer de antwoorden, één per regel. - Bij de oefeningen schrijf je zelf een programma. Met ▶ Uitvoeren test je het, met ✅ Controleer wordt gecontroleerd of je de gevraagde onderdelen gebruikt.
- Later installeren we Python ook op je eigen computer, zodat je echte programma’s maakt die je op je pc opslaat.
- Er is zelden maar één juiste oplossing. Als je programma doet wat gevraagd wordt, is dat prima: kijk daarna gerust hoe het nog korter of duidelijker kan.
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Introductie: waarom programmeren, waarom Python?
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Schrijf een programma dat de tekst Hallo wereld! op het scherm toont met print().
Schrijf een programma dat drie regels toont, telkens met een eigen print(): je voornaam, je klas en je favoriete hobby. De volgorde van de regels bepaalt de volgorde op het scherm.
🔍 Opzoekwerk — Introductie: waarom programmeren, waarom Python?
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "TIOBE index".
✓ opgeslagenTip: kijk naar vacatures op jobat.be of vdab.be.
✓ opgeslagen✅ Testjezelf-quiz — Introductie: waarom programmeren, waarom Python?
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Python installeren, de IDLE leren kennen en rekenen met getallen: het begin van elk Python-avontuur.
Python installeren
Om op je eigen computer te programmeren, moet Python geïnstalleerd zijn. De officiële website python.org geeft duidelijke instructies voor elk besturingssysteem. Python is freeware.
- Ga naar python.org → Downloads en download de nieuwste versie voor jouw besturingssysteem.
- Start het installatiebestand. Vink onderaan “Add Python to PATH” aan en kies Install Now.
- Na de installatie vind je Python (en de IDLE) in je startmenu. Pin de IDLE vast aan je startmenu of taakbalk: je gebruikt hem veel.
Controleren of Python al geïnstalleerd is, kan in het opdrachtprompt (Windows) of de Terminal (macOS/Linux):
Opdrachtprompt (op macOS/Linux typ je python3 --version)C:\Users\sam> python --version
Python 3.12.4Alle voorbeelden en oefeningen in deze cursus draaien ook rechtstreeks in je browser, dus je kan meteen beginnen. Installeer Python daarna op je eigen pc voor echte programma’s.
De Python IDLE en de shell
Een IDE (integrated development environment) is software die een programmeur helpt bij het ontwikkelen. Python levert standaard een IDLE mee (integrated development and learning environment). Later kan je overstappen op een uitgebreidere editor zoals Visual Studio Code.
Open je de IDLE, dan kom je in de Python Shell. Daar kan je commando’s uittesten en meteen zien hoe Python reageert. Het teken >>> betekent dat Python op jouw invoer wacht.
Python Shell>>> 6+7
13
>>> print("Hallo")
HalloIn de shell werk je nog niet aan een echt programma. Kies File → New File (Ctrl+N) om een nieuw programma te schrijven, sla het op met de extensie .py en voer het uit met Run → Run Module (F5). Dat komt later in deze cursus.
In dit online lesmateriaal gebruik je in plaats van de shell het Probeer zelf-blok. Daar moet je wel print() gebruiken om iets te zien (dat leer je in hoofdstuk 4). In de shell verschijnt de uitkomst van een berekening vanzelf.
Bewerkingen met getallen
Python kan rekenen zoals je rekenmachine, maar met andere symbolen:
| Bewerking | Symbool | Wiskunde | Python | Antwoord |
|---|---|---|---|---|
| Som | + | 6 + 7 | 6+7 | 13 |
| Verschil | - | 23 − 9 | 23-9 | 14 |
| Product | * | 7 · 5 | 7*5 | 35 |
| Deling | / | 12 / 4 | 12/4 | 3.0 |
| Macht | ** | 25 | 2**5 | 32 |
Merk op dat het antwoord van een deling als 3.0 getoond wordt en niet als 3. Waarom dat zo is, zie je in het hoofdstuk over datatypes.
De volgorde van bewerkingen
Wat is het antwoord op 3+5*2: 16 of 13? Python respecteert de volgorde van bewerkingen, zoals in de wiskundeles. Het product heeft voorrang op de som, dus het juiste antwoord is 13.
| Niveau | Bewerking |
|---|---|
| 1 | Haakjes |
| 2 | Machtsverheffing |
| 3 | Vermenigvuldiging en deling |
| 4 | Som en verschil |
- Bewerkingen van hetzelfde niveau worden opgelost van links naar rechts:
13-6+5geeft 12 en12/4*3geeft 9.0. - Uitzondering: machten worden opgelost van rechts naar links:
2**3**2is 29 = 512, niet 64. - Twijfel je? Gebruik haakjes: die hebben altijd voorrang.
Geheeltallige deling en rest
Twee bijzondere bewerkingen zijn erg nuttig bij delingen:
| Bewerking | Symbool | Voorbeeld | Antwoord |
|---|---|---|---|
| Deling | / | 14/4 | 3.5 |
| Geheeltallige deling | // | 14//4 | 3 |
| Rest | % | 14%4 | 2 |
De geheeltallige deling (floor division) geeft aan hoeveel keer een getal in een ander past: het resultaat is altijd naar beneden afgerond. De rest (modulo) is wat overblijft. Dat gebruik je om bijvoorbeeld seconden om te zetten in minuten en seconden, of om te controleren of een getal even of oneven is.
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Aan de slag met Python
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Toon met print() de uitkomst van deze vijf bewerkingen, elk op een eigen regel: 6+7, 23-9, 7*5, 12/4 en 2**5.
Voorspel eerst de antwoorden, voer dan uit en controleer of je gelijk had. Toon met print(): 3+5*2, (3+5)*2, 13-6+5, 12/4*3 en 2**3**2.
Toon met print(): 20//3, 12//5, -20//3 en 14%4. Beredeneer eerst het antwoord van -20//3: naar beneden afronden!
Zet 100000 seconden om in uren, minuten en seconden, enkel met // en %. Sla het aantal seconden op in de variabele seconden en toon daarna het aantal uren, minuten en seconden (bv. met drie print()-regels). Tip: één uur is 3600 seconden.
🔍 Opzoekwerk — Aan de slag met Python
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "Python IDE beginners".
✓ opgeslagenTip: python.org → Downloads.
✓ opgeslagen✅ Testjezelf-quiz — Aan de slag met Python
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Gegevens bewaren in variabelen, de vier basisdatatypes en je eerste kennismaking met functies.
Variabelen
Een variabele koppelt een naam aan een waarde van een bepaald datatype. De koppeling gebeurt met het =-teken. Je houdt eigenlijk een stukje geheugen vrij. Later roep je de waarde terug op met de naam van de variabele.
Python Shell>>> leerkracht1 = "C. Gratessolle"
>>> leerkracht2 = "F. Meyers"
>>> aantal_leerlingen = 8
>>> School = "PROVIL"
>>> lievelingsgetal = 3.1415
>>> leerkracht1
'C. Gratessolle'
>>> aantal_leerlingen
8
>>> school
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
school
NameError: name 'school' is not definedMerk op: hoofdletters tellen mee. School bestaat wel, maar school niet, en Python geeft een NameError.
Regels voor namen van variabelen
- Namen bestaan enkel uit letters, cijfers en underscores (_).
- Ze mogen beginnen met een letter of underscore, niet met een cijfer.
- Geen spaties in namen; gebruik een underscore:
aantal_leerlingen. - Gebruik geen namen die al een betekenis hebben in Python (zoals
print,list,float). - Kies korte, duidelijk beschrijvende namen.
- Namen zijn hoofdlettergevoelig (
School≠school): gebruik bij voorkeur enkel kleine letters. - Let op de kleine letter i en het cijfer 1, of de hoofdletter O en het cijfer 0.
Welke van deze namen zijn geldig? straat_nummer ✅, uwNaam ✅ (maar liever kleine letters), straat nummer ❌ (spatie), 1steNummer ❌ (begint met cijfer), leerling-nr ❌ (streepje wordt gelezen als min), H&S ❌ (speciaal teken), _eerste ✅, float ⚠️ (geldig maar overschrijft een functie).
Rekenen met variabelen
Het is de bedoeling dat je bewerkingen uitvoert met de waarden achter de variabelen. Het resultaat kan je in een nieuwe variabele bewaren:
eerste_getal = 3
tweede_getal = 5
som = eerste_getal + tweede_getal
print(som) # 8Een variabele mag ook een bewerking met zichzelf bevatten. getal = getal + 1 betekent letterlijk: “neem de huidige waarde van getal, tel er 1 bij op en bewaar het weer in getal”. Korter schrijf je dat als getal += 1.
Datatypes
Een computer wil weten tot welk datatype (klasse) een variabele behoort. De drie eenvoudigste, “primitieve” datatypes ken je al stilzwijgend. Een vierde, bool, zie je in het hoofdstuk over selectie:
| Datatype | Betekenis | Voorbeelden |
|---|---|---|
int | geheel getal | 1, -34, 3 |
float | kommagetal (met een punt!) | 7.2, 3.1415, 3.0 |
str | string: een sliert van tekens, altijd tussen aanhalingstekens | "Frank", 'I ♥ PROVIL', "0499123456" |
bool | waar of niet waar | True, False |
- Cijfers kunnen ook in een string staan (denk aan een gsm-nummer):
"0499123456"is tekst, geen getal. - Er is dus een verschil tussen
3en3.0. Een deling van twee gehele getallen geeft vaak een kommagetal, daarom geeft12/4de float3.0. - Kommagetallen schrijf je met een punt, niet met een komma.
Functies en type()
Een functie is te vergelijken met een niet-doorzichtige doos met een ingang en een uitgang: je geeft input mee, de functie doet iets en geeft een output terug. Hoe ze het precies doet, moet je niet weten. Een functie heeft een naam, gevolgd door twee haakjes waartussen je de input zet.
Python bevat heel wat ingebouwde functies, en later leer je ook zelf functies maken. De eerste functie die je leert kennen is type(): die geeft het datatype van een waarde of variabele.
Geeft het datatype (de klasse) van een waarde of variabele. Voorbeelden: type("Python"), type(3), type(3.1415).
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Variabelen, datatypes en functies
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Maak variabelen voor jouw gegevens met goede namen: voornaam (tekst), achternaam (tekst), leeftijd (geheel getal) en klas (tekst). Toon ze daarna elk met print().
Maak de variabele leerkracht met de waarde F. Meyers en toon ze. Geef daarna dezelfde variabele de waarde C. Gratessolle en toon ze opnieuw.
Maak de variabelen eerste_getal (3) en tweede_getal (5). Bereken hun som, verschil (eerste min tweede) en product in de variabelen som, verschil en product en toon ze met print().
Maak drie variabelen: user met de tekst Meyers, pi met het kommagetal 3.1415 en aantal_leerlingen met het gehele getal 12. Toon van elk het datatype met print(type(...)).
🔍 Opzoekwerk — Variabelen, datatypes en functies
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "Python keywords list".
✓ opgeslagenTip: zoek naar "PEP 8 naming conventions".
✓ opgeslagen✅ Testjezelf-quiz — Variabelen, datatypes en functies
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Tekst in Python: aanhalingstekens, print(), tekens samenvoegen, indexeren, slicen en de opmaak van tekst aanpassen.
Het datatype string
Een string is “een sliert van tekens”. Daarin kan alles: kleine letters, hoofdletters, cijfers, leestekens, Griekse symbolen, haakjes, valutasymbolen, … Ook de spatie is een teken zoals een ander!
Een string herken je aan de aanhalingstekens. Die geven aan waar de string begint en eindigt, maar zijn zelf geen onderdeel van de tekst. Je hebt vier mogelijkheden:
| Soort | Voorbeeld |
|---|---|
| enkel aanhalingsteken | 'Python' |
| dubbel aanhalingsteken | "Python" |
| drievoudig enkel | '''Python''' |
| drievoudig dubbel | """Python""" |
Je moet met hetzelfde teken eindigen als beginnen. De verschillende mogelijkheden bestaan voor het geval je tekst zelf een aanhalingsteken bevat. Stel dat je Harry Potter & The Philosopher’s Stone wil opslaan:
>>> boek = 'Harry Potter & The Philosopher's Stone'
SyntaxError: invalid syntax # Python denkt dat de string stopt na "Philosopher"
>>> boek = "Harry Potter & The Philosopher's Stone" # kies dubbele aanhalingstekens
>>> boek = 'Harry Potter & The Philosopher\'s Stone' # of een backslash voor het tekenDe drievoudige aanhalingstekens gebruik je voor tekst over meerdere regels. Een nieuwe regel kan ook met \n in de tekst.
Tekst tonen met print()
In de shell zie je de ruwe vorm van een waarde (met aanhalingstekens, en \n in plaats van een nieuwe regel). Met print() toon je een waarde netjes: de aanhalingstekens vallen weg en een \n wordt een echte nieuwe regel. Voor int en float is er geen verschil.
Zorgt voor de uitvoer van een waarde naar het scherm. Voorbeelden: print("Python"), print(naam), print(6+8). In een echt programma verschijnt enkel wat je met print() toont.
Strings optellen en vermenigvuldigen
Met strings kan je ook bewerkingen doen: je kan ze optellen (aan elkaar plakken, dat gebeurt heel vaak) en vermenigvuldigen met een geheel getal (herhalen).
Python Shell>>> "Frank" + "Meyers"
'FrankMeyers'
>>> "Frank" + " " + "Meyers"
'Frank Meyers'
>>> "Frank" * 5
'FrankFrankFrankFrankFrank'Zo kan je mooie zinnen opbouwen met variabelen. Overschrijf je de variabelen, dan geeft exact dezelfde print() meteen de nieuwe tekst.
len() en str()
De functie len() telt het aantal tekens in een string, spaties inbegrepen.
Telt het aantal tekens in een string, inclusief spaties. Voorbeelden: len("Thomas"), len(naam).
Wil je dat aantal tonen in een zin? Dan loop je tegen een fout aan:
Python Shell>>> user = "Christophe"
>>> aantal_tekens = len(user)
>>> print("Uw naam bestaat uit " + aantal_tekens + " tekens.")
TypeError: can only concatenate str (not "int") to straantal_tekens is een int, en een string kan je enkel met een string optellen. De oplossing is de functie str():
Zet een waarde om naar het datatype string. Voorbeelden: str(3.1415), str(aantal_tekens).
Sommige functies werken enkel met een bepaald datatype. len(1989) geeft een fout omdat een getal geen lengte heeft, maar len(str(1989)) geeft 4: het aantal cijfers.
Index en slicing van strings
Elk teken in een string heeft een index: zijn plaats. Zet de index tussen vierkante haakjes achter de string. Python begint te tellen bij 0! Het eerste teken staat op index 0.
De indexen van "Harry Potter" 0 1 2 3 4 5 6 7 8 9 10 11
H a r r y ␣ P o t t e r
-12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1- De laatste index is de lengte min één. Vraag je een index buiten de string, dan krijg je een IndexError.
- Met een negatieve index tel je van achter:
user[-1]is altijd het laatste teken. - Met de methode
.find()zoek je de index van een teken. Bij meerdere voorkomens geeft Python het eerste; bij een teken dat er niet in zit geeft het-1.
Zoekt de index van een bepaald symbool in de string. Voorbeelden: "Harry".find("H"), user.find("a"). Een methode is een functie die je met een punt achter de variabele oproept.
Slicen
Een stuk uit een string halen noemen we slicen: variabele[beginindex:eindindex].
- Python slicet van de beginindex tot (niet tot en met!) de eindindex.
- Geen beginindex? Dan begin je bij het eerste teken. Geen eindindex? Dan ga je tot het einde.
user[:]geeft de hele string; zijn begin- en eindindex gelijk, dan krijg je de lege string"".
De opmaak van strings aanpassen
Met enkele methoden pas je de hoofdletters aan. Handig als een gebruiker zijn naam op verschillende manieren intypt (PIETER, PiEteR, pieter) en jij die eenduidig als Pieter wil tonen.
| Methode | Wat ze doet | Voorbeeld (var = "Dit IS eEN test") |
|---|---|---|
.title() | de eerste letter van elk woord een hoofdletter | Dit Is Een Test |
.upper() | alles in hoofdletters | DIT IS EEN TEST |
.lower() | alles in kleine letters | dit is een test |
.strip() | verwijdert spaties links en rechts | " Provil " → "Provil" |
.lstrip() / .rstrip() | enkel links / enkel rechts |
Deze methoden passen de string enkel tijdelijk aan tijdens het printen. Wil je de waarde blijvend aanpassen, dan moet je ze overschrijven met het =-teken: var = var.lower().
Tenslotte kan je witruimte toevoegen: "\n" voegt een nieuwe regel toe en "\t" een tab.
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Werken met strings
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
(1) Sla de titel Harry Potter & The Philosopher’s Stone op in de variabele boek zonder SyntaxError, en toon ze. (2) Sla een gedichtje van drie regels op in de variabele gedichtje met drievoudige aanhalingstekens en toon het met print().
Maak de variabelen voornaam (Christophe) en achternaam (Gratessolle) en toon de zin Mijn naam is Christophe Gratessolle! door strings met + op te tellen. Overschrijf daarna beide variabelen (Axel Witsel) en toon met exact dezelfde print opnieuw de zin.
Maak de variabele user met een naam. Tel het aantal tekens met len() in de variabele aantal_tekens en toon de zin Uw naam bestaat uit … tekens. met het juiste aantal. Denk aan str()!
Maak de variabele alfabet met abcdefghijklmnopqrstuvwxyz en toon: (1) het aantal letters, (2) de letter op de vijfde plaats, (3) de letter op de 13e plaats, (4) de laatste letter (met een negatieve index) en (5) de index van de letter e met .find(). Vergeet niet dat Python bij 0 begint te tellen.
Maak de variabele leerling met Jan Janssen. Zoek de index van de spatie met .find(" ") en slice daarmee de voornaam en de achternaam. Toon beide, en toon ook de eerste en laatste letter van zowel voor- als achternaam (met indexen).
Maak de variabele var met Dit IS eEN test. Toon ze met .title(), .upper() en .lower(). Toon dan var nogmaals om te zien dat ze niet veranderd is. Overschrijf daarna var blijvend met de kleine-letters-versie en toon ze.
Toon met één enkele print() deze tekst: de regel Programmeertalen: gevolgd door Python, Visual Basic en JavaScript, elk op een eigen regel en ingesprongen met een tab. Gebruik \n en \t.
Sla je voor- en achternaam op in naam (bv. fRaNk MeYeRs) en toon: (a) alles in kleine letters, (b) alles in hoofdletters, (c) elk woord met een beginhoofdletter, (d) de eerste letter van de voornaam en de laatste van de achternaam, (e) het aantal tekens opgeslagen in aantal, en (f) de zin Jouw naam heeft … letters.
🔍 Opzoekwerk — Werken met strings
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "Python f-strings".
✓ opgeslagenTip: docs.python.org → string methods.
✓ opgeslagen✅ Testjezelf-quiz — Werken met strings
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Je eerste échte programma’s: gegevens vragen aan de gebruiker met input(), berekeningen uitvoeren en het resultaat mooi tonen.
Van shell naar programma
Tot nu toe speelde je vooral in de shell. In een echt programma schrijf je je code in een bestand (met de extensie .py). Python voert die code lijn per lijn uit, dus sequentieel.
- In IDLE: File → New File (Ctrl+N), typ je code en sla op met Ctrl+S. Geef het bestand een duidelijke naam en zet het in een logische map.
- Uitvoeren: dubbelklik op het
.py-bestand (het programma draait in de zwarte console van Windows) of kies Run → Run Module (F5) om het in de shell te laten draaien.
Na de laatste regel is een programma klaar en valt het venster dicht. Voeg als allerlaatste regel input("Druk op enter om te stoppen...") toe: dan wacht het programma op de gebruiker. (In de online oefeningen is dat niet nodig.)
Ieder programma begint met een probleemstelling: als programmeur bedenk je hoe je die kan oplossen. Vaak test je eerst kleine stukjes in de shell voor je het hele programma schrijft.
Invoer van de gebruiker: input()
Met input() vraag je een waarde aan de gebruiker. Je geeft de vraag als tekst mee en bewaart het antwoord meteen in een variabele.
Vraagt een waarde (altijd als string) aan de gebruiker. Voorbeelden: input("Press a key."), naam = input("Naam? ").
Belangrijk: wat je met input() krijgt is altijd een string, ook als de gebruiker een getal typt. Willen we met dat getal rekenen, dan moeten we het omzetten.
Ons eerste programma: een naam analyseren
De probleemstelling: het programma vraagt om een volledige naam, groet de gebruiker in een mooie zin en vertelt uit hoeveel tekens de naam bestaat.
programma1.pygebruiker = input("Type jouw naam hier: ")
aantal_tekens = len(gebruiker)
print("Hartelijk welkom, " + gebruiker + "!")
print("Jouw naam bestaat uit " + str(aantal_tekens) + " tekens.")
input("Druk op 'enter' om te stoppen...")- We vragen de naam met
input()en bewaren ze ingebruiker. - We tellen de tekens met
len()en bewaren dat inaantal_tekens. - We tonen een mooie zin met
print()en plakken strings aan elkaar met+. - We zetten het aantal (een int) om naar een string met
str().
Nu breiden we uit: het programma isoleert de voornaam en achternaam uit de volledige naam, toont ze met een beginhoofdletter (ongeacht hoe de gebruiker typte) en toont de eerste en laatste letter van beide als hoofdletter. Dat kan voor elke naam werken, door de spatie te zoeken met .find() en te slicen:
Rekenen met getallen: int() en float()
Vraag je met input() een getal, dan is dat een string. "7" * 2 geeft "77" en "7" + 1 geeft een TypeError. Je moet eerst omzetten:
| Functie | Wat ze doet | Voorbeeld |
|---|---|---|
int() | zet om naar een geheel getal | int("7"), int(3.9) → 3 |
float() | zet om naar een kommagetal | float("3.1415"), float(3) → 3.0 |
- Verwacht je een geheel getal? Gebruik
int(). Verwacht je een kommagetal (of ben je niet zeker)? Gebruikfloat(). int("3.1415")geeft een ValueError: je kan een tekst met komma niet rechtstreeks naar een int omzetten. Doe eerstfloat(), dan eventueelint()(de decimalen vallen weg).
Commentaar en afronden
Met het teken # zet je een regel (of het einde van een regel) in commentaar. Python negeert die tekst; het dient om je programma te structureren en te verduidelijken.
Rondt een kommagetal af op een aantal decimalen. Voorbeelden: round(3.1415, 1) → 3.1, round(pi, 3) → 3.142.
Kommagetallen kunnen rare uitkomsten geven, zoals 15.000000000000002. Met round() rond je bedragen netjes af op twee decimalen.
Ons tweede programma: de solden
Probleemstelling: een winkelketen wil klanten tijdens de solden helpen. Het programma vraagt de prijs van een product en het kortingspercentage, en zegt in een mooie zin hoeveel je moet betalen en hoeveel je bespaart.
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Programma’s met een sequentieel verloop
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Schrijf zelfstandig het programma van de naamanalyse: vraag de volledige naam met input() en toon (1) een groet met de naam netjes met .title(), (2) het aantal tekens, (3) de voor- en achternaam apart (gesliced via de spatie) en (4) de eerste letter van de voornaam en de laatste letter van de achternaam als hoofdletter. Het moet werken voor elke naam en hoe de gebruiker ook typt.
Schrijf het programma van de solden: vraag de prijs (float) en het kortingspercentage (int), bereken de nieuwe prijs en de besparing, rond ze af op 2 decimalen en toon ze in mooie zinnen. Voorzie je code van commentaar met #.
Schrijf een programma dat de gebruiker om een aantal seconden vraagt en dit omzet naar uren, minuten en seconden. Toon het antwoord mooi, bv. 27 uur, 46 minuten en 40 seconden.
De gebruiker geeft een aantal graden Celsius in. Je programma toont het aantal Kelvin (Celsius + 273,15) en het aantal graden Fahrenheit (Celsius × 9 / 5 + 32). Zorg voor een gebruiksvriendelijke tekst.
In de winkel zijn alle artikelen geprijsd inclusief BTW. Vraag de prijs en het BTW-percentage en bereken de prijs zonder BTW: prijs ÷ (1 + percentage/100). Toon ze mooi en logisch afgerond.
Vraag twee woorden en bewaar ze in woord1 en woord2. Toon beide in hoofdletters. Wissel daarna de waarden van de twee variabelen om (tip: gebruik een derde, tijdelijke variabele) en toon ze opnieuw in hoofdletters.
Voor het lesrooster krijgt elke leerkracht een code van 5 hoofdletters: de eerste drie letters van de achternaam gevolgd door de eerste twee van de voornaam. De gebruiker geeft voor- en achternaam in één variabele in (bv. Frank Meyers → MEYFR). Het moet met elke schrijfwijze werken.
Maak het kassasysteem van de Zoo van Antwerpen. Een kindertickets kost €8,5, een volwassene €16,5. Beide prijzen staan maar op één plaats bovenaan je code (in variabelen), zodat een prijswijziging snel gedaan is. Vraag het aantal kinderen, het aantal volwassenen en de familienaam, en toon de totale prijs en een bedankje aan familie (met beginhoofdletters).
🔍 Opzoekwerk — Programma’s met een sequentieel verloop
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "Python ValueError int try except".
✓ opgeslagenTip: zoek naar "floating point precision Python".
✓ opgeslagen✅ Testjezelf-quiz — Programma’s met een sequentieel verloop
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Meerdere gegevens in één variabele bewaren: lijsten maken, aanpassen, doorzoeken en sorteren.
Wat is een lijst?
Een list is een verzameling van items in een welbepaalde volgorde: de letters van het alfabet, automerken, de namen van je klas, … De items moeten geen relatie met elkaar hebben. Kies voor de naam van een lijst een meervoud (letters, namen), want ze bevat meerdere elementen.
Je maakt een lijst met vierkante haakjes, en de elementen scheid je met komma’s. Een element haal je op met zijn index, net zoals bij strings: het eerste element heeft index 0, het laatste index -1.
Items veranderen en toevoegen
De meeste lijsten zijn dynamisch: tijdens het programma komen er items bij of gaan er weg. Een game met aliens die neergeschoten worden en weer verschijnen, werkt zo.
- Wijzigen: lijstnaam, index en de nieuwe waarde:
automerken[1] = "fiat". - Achteraan toevoegen:
.append(). Handig om met een lege lijst[]te beginnen en er items aan toe te voegen. - Op een bepaalde plaats toevoegen:
.insert(index, waarde).
.append(item) voegt een item toe aan het einde van een lijst. .insert(index, item) voegt een item toe op de plaats van de gegeven index (de rest schuift op).
Items verwijderen
Er zijn drie manieren, afhankelijk van wat je weet en wat je met het verwijderde item wil doen:
| Manier | Wanneer | Voorbeeld |
|---|---|---|
del | je kent de index | del items[1] |
.pop() | je kent de index (of neemt het laatste) en wil het item nog gebruiken | laatste = items.pop(), eerste = items.pop(0) |
.remove() | je kent enkel de waarde | items.remove("B") |
- De waarden in een lijst zijn hoofdlettergevoelig.
.remove("league of legends")geeft een ValueError als er League of Legends staat. .remove()verwijdert enkel de eerste gevonden waarde, ook al staat ze meerdere keren in de lijst. (Alle voorkomens verwijderen leer je bij de while-lus.)- Met
len()vraag je op uit hoeveel items een lijst bestaat.
Een lijst sorteren
Gebruikers leveren gegevens vaak in een onvoorspelbare volgorde aan. Je kan een lijst blijvend of tijdelijk ordenen:
| Functie | Wat ze doet |
|---|---|
.sort() | ordent de lijst blijvend alfabetisch (of numeriek). Met .sort(reverse=True) van z naar a. |
sorted(lijst) | geeft een tijdelijk geordende versie; de lijst zelf blijft ongewijzigd |
.reverse() | draait de volgorde volledig om (heeft niets met alfabet te maken) |
.index(waarde) | geeft de index van een item in de lijst |
Python ordent hoofdletters vóór kleine letters: ['A', 'B', 'a', 'b']. Zet je gegevens dus best eerst in dezelfde schrijfwijze. Verwar .sort() (verandert de lijst) niet met sorted() (verandert de lijst niet).
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Werken met lijstjes
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Maak de lijst fietsen met vier soorten fietsen (bv. bmx, mountainbike, plooifiets, pedelec). Toon (1) de eerste fiets in hoofdletters, (2) de laatste fiets in een zin met een negatieve index en (3) het aantal fietsen.
Stel een lijst maaltijden op met je top 5 van favoriete maaltijden en toon in een zin welke op de eerste en welke op de laatste plaats staat. Je hebt een maaltijd over het hoofd gezien: zet die op de tweede plaats (.insert()) en zorg dat het een top 5 blijft (verwijder de laatste met .pop()). Toon de lijst opnieuw.
Begin met cars = ['bmw', 'mercedes', 'tesla', 'audi', 'ford']. Voer daarna in deze volgorde uit: append van tesla, seat, hyundai en dacia; remove van tesla; del van het item op index 1; pop van het laatste item in de variabele last_car; insert van ferrari op index 2. Toon last_car, de lijst en het aantal items.
Gegeven is de lijst names. (1) Toon ze tijdelijk gesorteerd met sorted() en toon daarna de originele lijst om te zien dat ze niet veranderd is. (2) Sorteer ze blijvend met .sort() en toon ze. (3) Sorteer ze van z naar a met reverse=True en toon ze. (4) Toon de index van els in de lijst.
Maak de lijst zin = ["dit", "is", "een", "test"]. Toon ze, draai de volgorde om met .reverse() en toon ze opnieuw. Draai ze daarna nog eens om en toon ze om te zien dat je de originele volgorde terug hebt.
🔍 Opzoekwerk — Werken met lijstjes
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: docs.python.org → "More on Lists".
✓ opgeslagenTip: zoek naar "Python nested lists".
✓ opgeslagen✅ Testjezelf-quiz — Werken met lijstjes
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Dezelfde actie uitvoeren voor elk item in een lijst met de for-lus, getallenreeksen maken met range(), lijsten kopiëren en onveranderlijke lijsten (tuples).
Door een volledige lijst “loopen”
Je wil vaak dezelfde taak uitvoeren voor elk item in een lijst: iedere naam groeten, elk getal verwerken, iedereen dezelfde mail sturen. Dat kan in Python met de for-lus. Je herhaalt geen code, en het maakt niet uit of de lijst tien of tien miljoen items heeft.
namen = ["Bart", "Fred", "Ilse", "Sofie", "Jan"]
for naam in namen:
print("Hallo, " + naam + "!")De regel for naam in namen: betekent letterlijk: “voor elk item naam in de lijst namen …”.
- De hulpvariabele (hier
naam) krijgt bij elke ronde de waarde van het huidige item. Kies een passende naam: het enkelvoud van de lijstnaam (for cat in cats,for leerling in leerlingen). - Na de regel met
forstaat een dubbele punt (:). - De regels die herhaald moeten worden, springen 4 spaties in. Zoveel regels als je wil, alle ingesprongen. De eerste regel die niet meer ingesprongen is, zit niet meer in de lus.
Let op met inspringen en de dubbele punt
In Python is inspringen (4 spaties) betekenisvol: het bepaalt wat bij de lus hoort. Hier maak je snel fouten. Bekijk wat er gebeurt:
- Vergeet je in te springen bij de regel na de
for? Dan krijg je een IndentationError: expected an indented block. - Vergeet je het inspringen bij de tweede
print? Dan staat die buiten de lus en wordt hij maar één keer uitgevoerd, na de lus. - Spring je in zonder lus? Dan geeft Python een IndentationError: unexpected indent.
- Vergeet je de dubbele punt? Dan krijg je een SyntaxError.
Getallenreeksen met range()
Soms heb je een reeks getallen nodig: jaartallen, scores, tafels, …
Genereert een reeks getallen. range(1, 5) geeft 1, 2, 3, 4. Let op: de reeks loopt van de ondergrens tot (niet tot en met!) de bovengrens.
range(5)is 0, 1, 2, 3, 4: vanaf 0 en met stapgrootte 1. Ideaal om een stuk code vijf keer te herhalen.- Met een derde getal geef je de stapgrootte:
range(2, 11, 2)geeft 2, 4, 6, 8, 10. - Met
list()zet je een reeks om in een echte lijst:list(range(1, 6))geeft[1, 2, 3, 4, 5].
Een lijst opbouwen met een lus
Je kan een lijst opbouwen door met een lege lijst te beginnen en er in een lus telkens een item aan toe te voegen met .append(). Zo maak je de machten van 2:
machten_van_twee = []
for macht in range(1, 11):
resultaat = 2 ** macht
machten_van_twee.append(resultaat)
print(machten_van_twee)Voor lijsten met enkel getallen bestaan handige functies:
| Functie | Resultaat |
|---|---|
min(lijst) | het kleinste getal |
max(lijst) | het grootste getal |
sum(lijst) | de som van alle getallen |
Python kent kortere schrijfwijzen, zoals machten = [3**macht for macht in range(1, 11)] (een list comprehension). Zoek gerust inspiratie bij collega’s of op het internet: zo vind je vaak een elegantere oplossing.
Slicen en kopiëren van een lijst
Een deel van een lijst neem je met slicen, exact zoals bij strings: klas[3:7], klas[:3], klas[5:]. Je kan ook door een slice loopen.
Met lijst2 = lijst1 maak je geen kopie: beide namen wijzen naar dezelfde lijst. Pas je de ene aan, dan verandert de andere mee! Een echte kopie maak je met een slice van alles: lijst2 = lijst1[:].
Onveranderlijke lijsten: tuples
Soms wil je een lijst die niet mag veranderen, zoals de afmetingen van een kast. Python noemt een onveranderlijke lijst een tuple. Je maakt ze met ronde haakjes.
- Index, slicen,
for,len(), … werken zoals bij een lijst. - Methoden die de lijst zouden veranderen (
.append(),.reverse(), …) werken niet. Een item aanpassen geeft een TypeError: 'tuple' object does not support item assignment. - Wil je toch andere waarden, dan moet je de hele tuple overschrijven.
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Lijsten doorlopen, getallenreeksen en tuples
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Maak een lijst namen met vijf namen. Loop met een for-lus door de lijst en toon voor elke naam Hallo, … ! en op een tweede regel Ik vind "…" een leuke naam!. Sluit af met één regel Klaar! die niet in de lus zit.
Maak een kindvriendelijk programma dat een getal van 1 tot en met 10 vraagt en de tafel ervan toont: 1 x 7 = 7, 2 x 7 = 14, …, 10 x 7 = 70. Gebruik een for-lus met range().
Bouw de lijst machten_van_twee op: begin met een lege lijst en voeg in een for-lus de machten 2**1 tot en met 2**10 toe met .append(). Toon de lijst, en toon daarna het grootste getal, het kleinste getal en de som met max(), min() en sum().
Maak de lijst autohandel_antwerpen met BMW, Audi, Volkswagen. Maak er een echte kopie van in autohandel_hasselt (met een slice). Voeg Mercedes toe aan Antwerpen en Seat aan Hasselt en toon beide lijsten: ze moeten verschillend zijn.
In een kleuterklas met een oneven aantal kinderen staan de lengtes (in cm) in de lijst lengtes = [104, 98, 110, 95, 102]. Toon met een kindvriendelijke opmaak: de grootste leerling, de kleinste, de som van alle lengtes, de gemiddelde lengte (som gedeeld door het aantal) en de mediaan (de middelste waarde van de gesorteerde lijst; gebruik sorted() en len(lengtes) // 2).
Na de herfstvakantie komt er een kleutertje van 100 cm bij, waardoor het een even aantal wordt. De juf wil de originele lijst lengtes bewaren voor het archief: maak met een slice een kopie lengtes_nieuw, voeg de nieuwe lengte daaraan toe en toon beide lijsten. Bepaal het nieuwe gemiddelde en de nieuwe mediaan (bij een even aantal: het gemiddelde van de twee middelste waarden).
In de rij van Fibonacci is elk element de som van de vorige twee, beginnend met 0 en 1: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … Bouw de lijst fibonacci met de eerste 100 elementen op (begin met [0, 1] en gebruik een lus met .append()) en druk daarna alle elementen één voor één af.
Sla de maten van een kast (75, 50, 140) op in de tuple maten_kast. Toon de eerste maat, de slice vanaf de tweede maat, elke maat apart met een for-lus en het datatype van maten_kast.
🔍 Opzoekwerk — Lijsten doorlopen, getallenreeksen en tuples
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "Python enumerate for loop".
✓ opgeslagenTip: zoek naar "Python list comprehension".
✓ opgeslagen✅ Testjezelf-quiz — Lijsten doorlopen, getallenreeksen en tuples
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Willekeurige getallen en keuzes: dobbelstenen, lotto, wachtwoorden en games.
De methoden uit de module
Soms wil je dat Python iets totaal willekeurig doet: in games, bij het genereren van wachtwoorden, bij een dobbelsteen. Daarvoor bestaat de module random. Een module is een verzameling extra functies die je eerst moet importeren, bovenaan je programma:
import random| Methode | Wat ze doet |
|---|---|
random.randint(a, b) | een willekeurig geheel getal van a tot en met b |
random.random() | een willekeurig kommagetal van 0 tot 1 |
random.choice(lijst) | kiest een willekeurig element uit een lijst |
random.shuffle(lijst) | zet de elementen van een lijst blijvend in willekeurige volgorde |
random.sample(lijst, k) | extra: kiest k verschillende willekeurige elementen (handig voor lotto) |
- Vergeet
import randomniet, anders werken de methoden niet. - Gebruik de naam
randomnooit voor een eigen variabele: je overschrijft dan de module. - Bij
randint(a, b)horen beide grenzen bij de mogelijke uitkomsten (anders dan bijrange()).
Ideeën om mee te bouwen
- Een worp met een dobbelsteen:
random.randint(1, 6). - Kop of munt:
random.choice(["kop", "munt"]). - Een willekeurige volgorde (afspeellijst, groepjes):
random.shuffle(lijst). - Een wachtwoord: kies 15 keer een willekeurig teken uit een lijst of string met alle toegelaten tekens en plak ze aan elkaar.
Omdat de uitkomst telkens anders is, kan je niet meteen zien of je programma klopt. Test daarom meerdere keren en bekijk of alle uitkomsten mogelijk zijn (nooit een 7 bij een dobbelsteen!).
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — De module random
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Maak een programma dat vraagt hoeveel nummers je gaat opgeven, en dan zoveel keer een titel vraagt (Liedje nr.1:, Liedje nr.2:, …) en ze in een lijst bewaart. Toon de lijst genummerd (elk nummer met een - ervoor). Pas daarna een shuffle toe en toon de lijst opnieuw.
Simuleer 10 worpen met een klassieke dobbelsteen. Toon elke worp (Worp 1: 4, …) en bewaar ze in een lijst. Toon aan het einde de hoogste, de laagste en de som van alle worpen.
Simuleer 10 worpen met een munt. Het programma zegt telkens kop of munt. Tel ook hoeveel keer het kop was en toon dat aan het einde. Tip: bewaar de worpen in een lijst en tel de keren kop met .count("kop").
Genereer een willekeurig paswoord van 15 tekens. Het mag bestaan uit hoofdletters, kleine letters, cijfers en de tekens @ # € ! ? $ % + = &. Tip: zet alle toegelaten tekens in één string (of lijst), begin met een lege string paswoord = "" en voeg in een lus 15 keer een random.choice() toe. Toon het paswoord.
Gegeven is een lijst met een even aantal leerlingen. Maak willekeurige groepjes van twee voor een groepswerk: schud de lijst en toon dan telkens twee opeenvolgende leerlingen als een groepje (Groepje 1: … en …). Tip: range(0, len(leerlingen), 2) loopt door de indexen 0, 2, 4, …
Elke woensdag- en zaterdagavond is er een Lotto-trekking: 6 nummers en 1 bonusnummer uit 45 genummerde ballen. Een getrokken bal wordt niet teruggelegd, dus een nummer komt maar één keer voor. Simuleer een trekking. Tip: random.sample(range(1, 46), 7) geeft 7 verschillende nummers; toon de eerste 6 gesorteerd en het laatste als bonus.
Help de juf met een programma dat een oefenblad maakt. De leerling kiest hoeveel opgaven en hoe groot de getallen maximaal mogen zijn. Het programma toont die opgaven (Opgave 1: 9 x 5 = ...) met willekeurige getallen van 1 tot het maximum. Na een druk op enter worden ook de oplossingen getoond. Bewaar de getallenparen in lijsten, zodat je ze tweemaal kan gebruiken.
🔍 Opzoekwerk — De module random
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "pseudorandom number generator seed Python".
✓ opgeslagenTip: zoek naar "Python secrets module vs random".
✓ opgeslagen✅ Testjezelf-quiz — De module random
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Keuzes maken in je programma: afhankelijk van een voorwaarde een deel van de code wel of niet uitvoeren.
Wat is een voorwaardelijke structuur?
Tijdens het programmeren wil je vaak één of meer voorwaarden controleren en afhankelijk daarvan een bepaalde actie uitvoeren: “als de gebruiker minstens 18 is, dan …, anders …”. Zo voer je een deel van het programma al dan niet uit. Dat doe je in Python (en in alle andere talen) met het if-statement.
Met elke nieuwe structuur die je leert, nemen je mogelijkheden enorm toe. In dit hoofdstuk kan je bovendien de programma’s uit vorige hoofdstukken verbeteren.
De opbouw van if en else
In dit voorbeeld loopen we door een lijst automerken. Is het merk gelijk aan bmw, dan tonen we het in hoofdletters, anders met een beginhoofdletter:
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())Algemene opbouwif <voorwaarde>:
<uitvoering als de voorwaarde behaald wordt>
else:
<uitvoering als de voorwaarde niet behaald wordt>- Achter de voorwaarde staat een dubbele punt, en de code die erbij hoort springt in (4 spaties). Zoveel regels als je wil. Een regel die niet meer inspringt, hoort er niet meer bij.
- Het
else-deel mag je weglaten als er enkel iets moet gebeuren wanneer de voorwaarde klopt. - Je mag een
ifin een andereifzetten (genest).
Meerdere voorwaarden: elif
Wil je meer dan twee mogelijkheden onderscheiden, dan gebruik je elif (samentrekking van else if). Python overloopt de voorwaarden van boven naar onder en voert enkel het eerste deel uit waarvan de voorwaarde klopt. De volgorde is dus belangrijk!
Algemene opbouwif <voorwaarde 1>:
<uitvoering als voorwaarde 1 behaald wordt>
elif <voorwaarde 2>:
<uitvoering als voorwaarde 2 behaald wordt>
else:
<uitvoering in alle andere gevallen>Voorbeeld: een robot-leerkracht (in de toekomst) beoordeelt het jaartotaal van elke leerling. Voor elk bereik van punten hoort een eigen commentaar.
Voorwaarden controleren
De kern van elke if is een expressie die True of False oplevert: een voorwaardelijke test. Klopt hij (True), dan voert Python de bijhorende code uit; klopt hij niet (False), dan negeert Python ze. Zo leer je een nieuw datatype kennen: bool (boolean), dat maar twee waarden kan hebben: True of False (met hoofdletter!).
| Operator | Betekenis | Voorbeeld |
|---|---|---|
== | gelijk aan | naam == "frank" |
!= | verschillend van | leeftijd != 21 |
< <= | kleiner dan (of gelijk aan) | leeftijd < 21 |
> >= | groter dan (of gelijk aan) | leeftijd >= 21 |
and | beide voorwaarden moeten kloppen | a >= 21 and b >= 21 |
or | minstens één voorwaarde moet kloppen | a >= 21 or b >= 21 |
not | keert True/False om | not waarde < 10 |
in | zit in een lijst of string | "kaas" in toppings |
Het enkele =-teken kent een waarde toe aan een variabele. Het dubbele ==-teken vergelijkt twee waarden. Verwar ze niet!
Voor Python zijn "frank" en "Frank" niet gelijk, en "a" <= "A" is False. Zet strings die je vergelijkt eerst in dezelfde schrijfwijze met .lower(), .upper() of .title(). Websites doen dat ook om te controleren of een gebruikersnaam echt uniek is.
in, bool-variabelen en lege lijsten
Met in controleer je of een waarde in een lijst zit (bv. een nieuwe gebruikersnaam in een lijst met bestaande) of een stukje tekst in een string. Ook hier telt hoofdlettergevoeligheid.
Je kan True en False ook in een variabele bewaren en die rechtstreeks in een voorwaarde gebruiken: if status:. En een lijst zelf als voorwaarde: if gewenste_toppings: is True als de lijst minstens één element bevat, en False als ze leeg is. Handig om te testen of een lijst leeg is.
Uitgewerkt voorbeeld: een pizza samenstellen
We werken met twee lijsten: de gewenste toppings van de klant en de toppings die het restaurant heeft. Het programma controleert elke gewenste topping.
- Het eerste
if gewenste_toppings:controleert of de lijst niet leeg is. Is ze leeg, dan koos de klant een standaardpizza. - Daarna loopen we door de gewenste toppings en gebruiken we een
if ... in ...in de for-lus: dat wordt voor elk element opnieuw gecontroleerd. Dit is een genest programma: een selectie in een iteratie in een selectie.
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — De selectie: if, elif en else
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Om aan de Nationale Loterij deel te nemen moet je minstens 18 zijn. Vraag de leeftijd. Is die minstens 18, toon dan Je bent … jaar oud. Je mag deelnemen aan de spelen van de Nationale Loterij. Anders: Om deel te nemen aan de spelen van de Nationale Loterij moet je minimum 18 jaar oud zijn. Over … jaar mag je wel meespelen op onze website. (bereken hoeveel jaar nog.)
Vraag een getal en controleer of het in het interval [10;20[ ligt (10 hoort er wel bij, 20 niet). Antwoord kort met Het gegeven getal ligt wel in het interval [10;20[. of … ligt niet in …. Combineer met and (of gebruik een gekoppelde vergelijking).
Bij het aanmaken van een account wordt gecontroleerd of het e-mailadres op een zwarte lijst staat. Maak een lijst zwarte_lijst met een paar adressen (in kleine letters). Vraag een e-mailadres en controleer met in. Zet het ingegeven adres eerst in kleine letters, zodat hoofdletters geen probleem zijn. Toon een passende boodschap.
Bepaal de toegangsprijs voor één persoon op basis van de leeftijd: onder de 4 jaar is gratis, van 4 tot en met 17 jaar betaal je €10 en vanaf 18 jaar €18. Gebruik if, elif en else.
Vraag een jaartal en zeg of het een schrikkeljaar is. Regels: een jaar is een schrikkeljaar als het deelbaar is door 4, behalve als het deelbaar is door 100, tenzij het ook deelbaar is door 400. (2000, 2008 en 2016 wel; 1900 en 2019 niet.) Tip: een getal is deelbaar door n als jaar % n == 0.
Bouw de robot die drie leerlingen (klas = ["Bart", "Els", "Erik"]) hun jaartotaal in procent vraagt en er commentaar bij geeft: tot en met 25: zeer teleurgesteld; onder 50: niet geslaagd; onder 70: geslaagd; 70 of meer: mooi resultaat. Gebruik een for-lus en een if-elif-else-keten. Denk aan de volgorde van de voorwaarden!
Een ticket kost €10. Vraag met hoeveel personen je komt. Het museum geeft groepskorting op de totaalprijs: vanaf 3 personen 10%, vanaf 4 personen 20%, vanaf 6 personen 40% en vanaf 10 personen is het gratis. Rond het te betalen bedrag af tot op 1 cent. (Denk aan de volgorde van de voorwaarden: begin bij de grootste groep!)
Vraag voornaam, achternaam, geboortedatum (ddmm, bv. 2408), geboortejaar en het gewenste paswoord. Toon alle fouten tegelijk: het paswoord is te kort (minder dan 5 tekens), of bevat de voornaam, achternaam, geboortedatum of het geboortejaar. Vergelijk in kleine letters zodat niemand kan cheaten met MeYeRS. Tip: verzamel de fouten in een lijst fouten met .append() en toon ze op het einde met een for-lus. Geen fouten? Dan is het paswoord goed.
🔍 Opzoekwerk — De selectie: if, elif en else
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "Python match case statement".
✓ opgeslagenTip: zoek naar "Python truthy falsy values".
✓ opgeslagen✅ Testjezelf-quiz — De selectie: if, elif en else
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Instructies herhalen: een gekend aantal keer met for, of zolang een voorwaarde klopt met while.
Introductie
Tot nu toe programmeerde je met een opeenvolging van instructies (sequentie) en keuzes (selectie). Een derde structuur is de herhaling of iteratie: instructies herhalen aan een hoog tempo is één van de grote voordelen van een computer. Er zijn twee soorten:
- een for-lus: een gekend aantal herhalingen;
- een while-lus: herhalen zolang een voorwaarde klopt.
De for-lus
Met de for-lus herhaal je een deel van het programma een gekend aantal keer. Je loopt door een lijst, een string, een tuple of een range(). De ingesprongen regels worden voor elk item herhaald.
- Voor een gewone herhaling gebruik je meestal
range(n): dat loopt van 0 tot en met n-1. Wil je de teller tonen als nummering, dan is dati + 1. - Bij
range(2, 5, 2)zijn de grenzen tot (niet tot en met) de bovengrens, en is de laatste waarde de stapgrootte. - Je kan ook door een string loopen: één ronde per teken.
break en continue
Soms wil je een lus vroegtijdig verlaten of een ronde overslaan:
| Statement | Effect |
|---|---|
break | stopt de hele lus. Het programma gaat verder na de lus. |
continue | stopt enkel de huidige ronde; de lus gaat door met de volgende. |
Let op de volgorde van de regels: staat de print vóór of ná de break? Dat bepaalt of de “peer” nog getoond wordt.
else bij een for-lus, en lussen in lussen
Een for-lus mag een else hebben: die wordt uitgevoerd als de lus volledig doorlopen is. Bij een break wordt het else-deel niet uitgevoerd (bij een continue wel).
Je kan ook een for-lus in een andere for-lus plaatsen: voor elk item van de buitenste lus wordt de binnenste lus helemaal doorlopen. Zo combineer je elk adjectief met elke soort fruit.
De while-lus
Soms weet je niet hoeveel keer iets moet herhaald worden, maar wel zolang wat. Dan gebruik je een while-lus: de ingesprongen code wordt herhaald zolang de voorwaarde True is. De voorwaarde bouw je op met de vergelijkingsoperatoren uit het vorige hoofdstuk.
- De variabele in de voorwaarde moet vooraf een waarde hebben.
- Ze moet tijdens de lus veranderen, anders krijg je een oneindige lus! Met Ctrl+C onderbreek je een lus in Python (in dit lesmateriaal gebruik je de Stop-knop).
- Met
getal += 1verhoog je een teller. breakencontinuewerken hier op dezelfde manier als bij for.
De gebruiker bepaalt wanneer we stoppen
Een klassieker: het programma herhaalt wat de gebruiker zegt, tot die stop typt.
- De vraag zit in de variabele
prompt: zo is ze makkelijk aan te passen. bericht = ""maakt de variabele aan vóór de voorwaarde van de while ze nodig heeft.
Dit programma heeft nog een klein foutje: als je stop typt, wordt “stop” nog net meegeprint. Dat los je in de oefeningen op!
Met een flag of met break
Is de voorwaarde ingewikkeld, dan gebruik je vaak een flag: een variabele (status = True) die de voorwaarde van de while vormt. Op verschillende plaatsen kan je ze op False zetten om de lus te beëindigen. Een alternatief is een oneindige lus while True: waaruit je met break springt. Beide versies verbeteren het foutje van daarnet.
Alle voorkomens uit een lijst verwijderen
Bij lijsten leerde je dat .remove() enkel de eerste gevonden waarde verwijdert. Met een while-lus herhaal je dat zolang de waarde nog in de lijst zit:
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — De iteratie: for en while
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Toon alle machten van 2 (1, 2, 4, 8, 16, 32, …) die kleiner zijn dan een door de gebruiker ingegeven waarde. Gebruik een while-lus.
De faculteit van een natuurlijk getal n, genoteerd als n!, is het product van de getallen 1 tot en met n. Bijvoorbeeld 5! = 5·4·3·2·1 = 120. Vraag een getal en toon de faculteit ervan met een lus.
Bereken het gemiddelde verbruik (liter per 100 km) van een wagen. Bij elke tankbeurt vraag je het aantal liter en het aantal kilometer sinds de vorige tankbeurt. Blijf dat vragen tot 0 liter wordt ingegeven. Toon dan het gemiddelde verbruik (afgerond op 3 decimalen): totaal aantal liter ÷ totaal aantal kilometer × 100.
Toon alle delers van een door de gebruiker ingegeven positief geheel getal (bv. voor 132: 132, 66, 44, 33, 22, 12, 11, 6, 4, 3, 2 en 1). Een getal d is een deler als getal % d == 0. Is het een priemgetal (enkel deelbaar door 1 en zichzelf), toon dan ook Dit is een priemgetal. Tip: tel het aantal delers.
In New York leven dit jaar naar schatting 2 miljoen ratten. De populatie groeit elk jaar met 15 %. Bereken hoelang het duurt voor er 10 miljoen zijn. Toon elk jaar met de populatie (afgerond) tot de 10 miljoen gelijk of net overschreden is, en vermeld op het einde na hoeveel jaar dat gebeurde.
Vraag herhaaldelijk een getal (ook negatieve zijn toegelaten). Blijf vragen tot de gebruiker 0 intypt. Toon dan de som van alle ingegeven getallen.
Maak de papegaai: het programma herhaalt alles wat de gebruiker zegt (>>> Hallo) tot die stop typt. Het woord stop zelf mag niet meer meegeprint worden. Gebruik een flag of while True met break.
Vraag een tekst en toon ze omgekeerd (!tset etsreeralla nee si tiD). Doe dat door in een for-lus door de tekens te lopen en elk teken vooraan in een nieuwe string te plakken.
Vraag een woord en toon hoeveel keer elke letter erin voorkomt, in alfabetische volgorde en zonder letters die niet voorkomen. Voor programmeren: "a" x 1, "e" x 2, "g" x 1, "m" x 2, "n" x 1, "o" x 1, "p" x 1, "r" x 3. Tip: loop door sorted(woord), houd bij welke letters je al getoond hebt en gebruik .count().
Maak een converter die een binair getal (als tekst) omzet naar zijn decimale waarde: 101101 is 45. Tip: loop door de cijfers van links naar rechts; verdubbel telkens wat je al hebt en tel het nieuwe cijfer erbij (decimaal = decimaal * 2 + int(cijfer)).
Simuleer worpen met twee dobbelstenen en toon steeds beide waarden, tot je twee zessen gooit. Toon dan hoeveel worpen er nodig waren. Gebruik random.randint(1, 6) en een while-lus.
🔍 Opzoekwerk — De iteratie: for en while
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Denk aan: weet ik vooraf hoe vaak ik moet herhalen?
✓ opgeslagenTip: zoek naar "while True game loop Python".
✓ opgeslagen✅ Testjezelf-quiz — De iteratie: for en while
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Tijd om alles te combineren: sequentie, selectie en iteratie in echte spelletjes. Een raadspel, een tafeltrainer, een computer die jouw getal raadt en galgje.
Van probleem naar programma
Bij een groter programma begin je niet meteen te typen. Een goede aanpak:
- Begrijp de opdracht: wat moet er op het scherm komen, wat vraagt de gebruiker, wanneer stopt het?
- Splits op in stukjes: eerst het geheime getal, dan één poging, dan herhalen, dan de hints, dan het einde.
- Bouw en test stap voor stap. Typ een stukje, voer uit, controleer, ga verder.
- Print tussenwaarden als iets niet klopt (
print(geheim)tijdens het testen), en haal ze nadien weg. - Verbeter daarna: foutafhandeling, een mooiere opmaak, extra functies.
Onder elk programma kan je in het vak Invoer je antwoorden voorbereiden (één per regel). Zo test je snel opnieuw zonder alles telkens te typen. Omdat het geheime getal willekeurig is, toon je het tijdens het testen best even, zodat je weet of het programma juist reageert.
Voorbeeld: een raadspel
Het programma genereert een geheim getal van 0 tot en met 100. De speler krijgt 10 pogingen en na elke poging een hint: hoger of lager. Combineert een iteratie (for), selectie (if/elif) en een break als het getal geraden is. Gebruik je de else van de for-lus, dan weet je of alle pogingen op zijn.
De snelste manier om te raden
Weet jij wat de beste techniek is om een getal van 0 tot 100 in zo weinig mogelijk pogingen te raden? Halveren! Gok telkens het middelste getal van het bereik dat overblijft. Na “hoger” is de ondergrens één hoger dan je gok, na “lager” is de bovengrens één lager. Zo heb je bij 0-100 hoogstens 7 pogingen nodig. Dit heet binair zoeken en wordt overal in de informatica gebruikt.
onder = 0
boven = 100
gok = (onder + boven) // 2 # het midden
# "hoger" -> onder = gok + 1
# "lager" -> boven = gok - 1 Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Projecten: alles samenbrengen
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Maak het raadspel: het programma kiest een willekeurig geheel getal van 0 tot en met 100. De speler heeft 10 pogingen. Na elke poging krijgt hij de hint hoger of lager. Is het getal geraden, toon dan Je hebt het getal in … pogingen geraden. Zijn de 10 pogingen op, toon dan Game Over. (Tip: for met break en het else-deel van de lus. Toon tijdens het testen even het geheime getal.)
Verbeter het raadspel: de speler mag blijven raden tot het getal gevonden is (while-lus, met een teller voor het aantal pogingen). Daarna vraag je zijn naam en bewaar je (pogingen, naam) in de lijst scores. Toon de top 3 (de beste scores = het minst aantal pogingen: sorted(scores)[:3]) en vraag Wil iemand anders de score verbeteren? (ja/nee). Bij ja start een nieuw spel, bij nee stopt het programma.
Verbeter het oefenblad voor de juf. De leerling kiest hoeveel opgaven en hoe groot de getallen maximaal mogen zijn. Het programma stelt elke vermenigvuldiging (met willekeurige getallen van 1 tot het maximum) en verbetert meteen: bij een juist antwoord positieve feedback, bij een fout antwoord toon je de juiste oplossing. Aan het einde toon je de score (Je score is … op …) en een gepast commentaar (bv. zet je beter in bij minder dan de helft).
Draai het raadspel om: jij denkt aan een getal van 0 tot 100 en de computer raadt. Na elke gok antwoord jij hoger, lager of goed. Bij goed toont het programma Ik heb het getal geraden in … pogingen. Na 10 pogingen zonder succes: Ik heb gefaald en ben dommer dan een mens. Maak het zo slim mogelijk door telkens het midden van het overgebleven bereik te gokken (halveren).
Maak galgje. Eisen: een lijst met minstens 8 woorden waaruit willekeurig één gekozen wordt; het woord wordt getoond als sterretjes (* * * *); de speler kan een letter of een heel woord raden; een foute letter of fout woord geeft een strafpunt; juiste letters worden zichtbaar; bij het juiste woord toon je PROFICIAT met het aantal strafpunten en vraag je Wil je nog eens spelen? (ja/nee). Hoofdletters en kleine letters moeten allebei werken. Werk stap voor stap!
🔍 Opzoekwerk — Projecten: alles samenbrengen
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "binary search explained". Denk aan log2.
✓ opgeslagenTip: pygame.org.
✓ opgeslagen✅ Testjezelf-quiz — Projecten: alles samenbrengen
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
Alle geziene functies op een rijtje, foutmeldingen leren lezen en oplossen, en tenslotte een eigen spel als afsluiter.
Overzicht van de geziene functies en methoden
Hieronder vind je de functies in dezelfde volgorde als waarin je ze in de cursus leerde. Een functie roep je op met haakjes (len(x)), een methode met een punt achter een waarde (x.upper()).
| Functie | Deze functie … |
|---|---|
type() | geeft het datatype (class) van de variabele |
print() | toont een waarde op het scherm |
len() | telt het aantal tekens in een string (of items in een lijst) |
str() | zet een datatype om naar een string |
.find() | zoekt de index van een bepaald symbool in de string |
.title() | zet de eerste letter van elk woord als hoofdletter |
.upper() | zet alle tekens in hoofdletters |
.lower() | zet alle tekens in kleine letters |
.lstrip() .rstrip() .strip() | verwijdert spaties links / rechts / links en rechts |
"\n" "\t" | voegt een nieuwe regel / een tab toe in de string |
input() | vraagt een waarde (als string) aan de gebruiker |
int() float() | zet om naar een geheel getal / kommagetal |
# | zet de regel code in commentaar |
round() | rondt een kommagetal af op een aantal decimalen |
.append() | voegt een item toe aan het einde van een lijst |
.insert() | voegt een item toe op de plaats van de gegeven index |
del | verwijdert o.a. een item met gekende index uit een lijst |
.pop() | neemt een item met gekende index uit een lijst |
.remove() | verwijdert een item met gekende waarde uit een lijst |
.sort() | ordent de items van een lijst blijvend |
.index() | geeft de index van een item in een lijst |
sorted() | ordent de items van een lijst tijdelijk |
.reverse() | draait de volgorde van een lijst om |
range() | genereert een reeks getallen |
list() | zet de uitkomst van range() om in een lijst |
min() max() sum() | kleinste, grootste waarde en som van een lijst getallen |
random.randint(a,b) | een willekeurig geheel getal van a t.e.m. b |
random.random() | een willekeurig kommagetal van 0 tot 1 |
random.choice(lijst) | kiest een willekeurig element uit een lijst |
random.shuffle(lijst) | zet een lijst blijvend in willekeurige volgorde |
and or not | combineert of keert logische waarden om |
in | controleert of een waarde in een lijst of string voorkomt |
if … elif … else | vormt de voorwaardelijke structuur (selectie) |
for … in …: | vormt de iteratie met een gekend aantal stappen |
break continue | onderbreekt de lus / enkel de huidige ronde |
while …: | vormt de iteratie met een bepaalde voorwaarde |
Foutmeldingen leren lezen
Een foutmelding is geen straf maar een wegwijzer. Lees ze van onder naar boven: de laatste regel zegt welke soort fout het is en wat er mis is, de regel erboven toont in welke regel van jouw code het misging.
Zo ziet een foutmelding eruitTraceback (most recent call last):
File "programma.py", line 2, in <module>
print("Het getal is " + getal)
TypeError: can only concatenate str (not "int") to str| Fout | Meestal betekent het … |
|---|---|
| SyntaxError | je schreef iets tegen de regels: een vergeten dubbele punt, aanhalingsteken, haakje of komma |
| IndentationError | fout met inspringen (te veel, te weinig of niet consistent) |
| NameError | je gebruikt een naam die niet bestaat: typfout, hoofdletter of je vergat de variabele aan te maken |
| TypeError | verkeerd datatype, bv. een string optellen met een int |
| ValueError | het datatype klopt, de waarde niet, bv. int("abc") |
| IndexError | je vraagt een index die niet bestaat |
| ZeroDivisionError | delen door nul |
Zo zoek je een fout
- Lees de foutmelding van onder naar boven: welke soort fout, welke regel?
- Kijk naar die regel én de regel erboven: een vergeten haakje of dubbele punt wordt vaak pas op de volgende regel opgemerkt.
- Print tussenwaarden met
print()ofprint(type(x)): is het echt wat je denkt? - Maak het kleiner: zet regels tijdelijk in commentaar (
#) tot de fout verdwijnt. - Zoek de foutmelding op (woord voor woord op het internet): iemand anders kreeg dezelfde fout al.
- Neem een pauze of leg het aan iemand uit. Vaak zie je de fout dan zelf.
Hoe nu verder?
Je kent nu de bouwstenen van elk programma: variabelen, datatypes, strings, lijsten, keuzes en herhalingen. Wat je verder nog kan ontdekken:
- Eigen functies schrijven (
def) om code te hergebruiken; - Bestanden lezen en schrijven, en foutafhandeling met
try/except; - Dictionaries: gegevens bewaren als sleutel-waardeparen;
- Klassen en objecten (object-georiënteerd programmeren);
- Toepassingen: een grafische interface (tkinter), games (pygame), sensoren en robots (Raspberry Pi), data-analyse en webapplicaties.
Verwerk wat je hierboven las met de onderdelen hieronder. Ze horen bij deze theorie.
🧪 Oefeningen — Overzicht, foutmeldingen en eigen project
Typ je code in het vak en klik op "Controleer". Je code wordt nagekeken op de vereiste onderdelen (waar een Voorbeeld-knop staat, kan je je pagina ook meteen bekijken). Je code wordt bewaard als je aangemeld bent.
Dit programma bevat vijf fouten. Voer het uit, lees de foutmelding, herstel de fout en ga verder tot het werkt: (1) een komma vergeten in de lijst, (2) een dubbele punt vergeten, (3) een vergeten inspringing, (4) een string die je met een getal optelt, (5) een index die niet bestaat (de laatste naam moet getoond worden).
Nog een programma met vier fouten: (1) de invoer wordt niet naar een getal omgezet, (2) een toekenning (=) in plaats van een vergelijking, (3) een dubbele punt vergeten bij else, (4) een oneindige lus omdat de teller nooit verandert (het resultaat moet 6 zijn).
Bedenk een eigen tekstspel van niet te makkelijk niveau met een score-systeem: de speler wordt beloond. Het hoeft geen visueel hoogstandje te zijn: alle grote spelontwikkelaars zijn zo begonnen (denk aan 2048). Je programma bevat minstens: input(), print(), een lus, een keuze (if), een score-variabele en willekeur (random). Voorbeeld: hoger of lager — een willekeurig getal wordt getoond, de speler raadt of het volgende hoger of lager is en krijgt een punt per juist antwoord. Zoek gerust naar nieuwe functies!
🔍 Opzoekwerk — Overzicht, foutmeldingen en eigen project
Zoek het antwoord zelf op (internet, cursus, ...) en typ het hieronder. Wordt automatisch bewaard.
Tip: zoek naar "Python def function return".
✓ opgeslagenTip: zoek op YouTube of GitHub naar "Python project for beginners".
✓ opgeslagen✅ Testjezelf-quiz — Overzicht, foutmeldingen en eigen project
Beantwoord alle vragen en klik daarna op "Controleer". Je mag zo vaak opnieuw proberen als je wil.
⚠️ Je verliet deze pagina
Je wisselde van tabblad (of verliet de pagina) terwijl je bezig was met een oefening, opdracht of zelftest. Dit werd geregistreerd als het verlaten van de oefening en kan als vals spelen bestempeld worden.