Python cursusmateriaal

Python voorbeelden voor scripts, data en projecten

Een overzichtelijke bibliotheek met korte uitleg, codevoorbeelden en oefenonderwerpen die je direct in VS Code kunt gebruiken.

Start met voorbeelden

Python Essentials overzicht

Deze pagina bevat extra veel voorbeelden rond onderwerpen die je vaak tegenkomt bij Python Essentials: variabelen, datatypes, beslissingen, loops, functies, lijsten, bestanden, CSV, modules en objectgericht programmeren.

Python Essentials 1

Module 2 — Data, variabelen en input

Hello world

print("Hallo wereld!")

Controleer of Python werkt en tekst kan tonen.

Variabelen

naam = "Student"
leeftijd = 17
print(naam, leeftijd)

Bewaar informatie onder een duidelijke naam.

Datatypes bekijken

waarde = 3.14
print(type(waarde))

Bekijk of iets een string, integer, float of boolean is.

String combineren

voornaam = "Alex"
achternaam = "Jansen"
print(voornaam + " " + achternaam)

Plak tekst aan elkaar met de plus-operator.

f-string

product = "laptop"
prijs = 799
print(f"De {product} kost €{prijs}")

Een nette manier om variabelen in tekst te zetten.

Input vragen

naam = input("Wat is je naam? ")
print("Welkom", naam)

Laat de gebruiker zelf iets typen.

Input naar getal

leeftijd = int(input("Leeftijd: "))
print(leeftijd + 1)

Input is standaard tekst, dus soms moet je converteren.

Rekenen

a = 10
b = 3
print(a + b)
print(a / b)
print(a // b)
print(a % b)

Gebruik operators voor optellen, delen, hele deling en rest.

Afronden

prijs = 19.987
print(round(prijs, 2))

Rond kommagetallen netjes af.

Boolean

ingelogd = True
print(ingelogd)

Een boolean is waar of niet waar.

Commentaar

# Dit is uitleg bij de code
print("Code wordt uitgevoerd")

Commentaar helpt om je code begrijpelijk te maken.

Constante naam

BTW_PERCENTAGE = 21
bedrag = 100
print(bedrag * BTW_PERCENTAGE / 100)

Hoofdletters gebruik je vaak voor vaste waarden.

Python Essentials 1

Module 3 — Beslissingen en loops

If statement

cijfer = 7
if cijfer >= 5.5:
    print("Voldoende")
else:
    print("Onvoldoende")

Laat Python een keuze maken.

Elif

score = 82
if score >= 90:
    print("Uitstekend")
elif score >= 70:
    print("Goed")
else:
    print("Oefenen")

Gebruik elif voor meerdere mogelijkheden.

And

leeftijd = 18
pas = True
if leeftijd >= 18 and pas:
    print("Toegang")

Beide voorwaarden moeten kloppen.

Or

admin = False
docent = True
if admin or docent:
    print("Mag openen")

Eén van de voorwaarden moet kloppen.

For loop

for nummer in range(1, 6):
    print(nummer)

Herhaal code een vast aantal keer.

While loop

pogingen = 0
while pogingen < 3:
    print("Probeer opnieuw")
    pogingen += 1

Herhaal zolang een voorwaarde waar is.

Break

for getal in range(10):
    if getal == 5:
        break
    print(getal)

Stop een loop eerder.

Continue

for getal in range(6):
    if getal == 3:
        continue
    print(getal)

Sla één ronde over en ga verder.

Geneste loop

for rij in range(3):
    for kolom in range(3):
        print(rij, kolom)

Een loop binnen een loop.

In lijst zoeken

vakken = ["Python", "Linux", "Netwerk"]
if "Python" in vakken:
    print("Gevonden")

Controleer of een waarde in een lijst zit.

Menu maken

keuze = input("1 = start, 2 = stop: ")
if keuze == "1":
    print("Starten")
elif keuze == "2":
    print("Stoppen")

Een eenvoudige basis voor consolemenu's.

Wachtwoord check

wachtwoord = input("Wachtwoord: ")
if len(wachtwoord) >= 8:
    print("Sterk genoeg")
else:
    print("Te kort")

Gebruik voorwaarden om invoer te controleren.

Python Essentials 1

Module 4 — Functies, collecties en fouten

Functie

def tel_op(a, b):
    return a + b

print(tel_op(4, 6))

Maak code herbruikbaar met functies.

Parameter standaardwaarde

def groet(naam="bezoeker"):
    print("Hallo", naam)

groet()

Gebruik een standaard als er niets wordt meegegeven.

Lijst

vakken = ["Python", "Web", "Data"]
print(vakken[0])

Bewaar meerdere waarden in één variabele.

Lijst uitbreiden

taken = []
taken.append("opdracht maken")
taken.append("testen")
print(taken)

Voeg items toe aan een lijst.

Dictionary

student = {"naam": "Alex", "klas": "ICT"}
print(student["klas"])

Bewaar gegevens met duidelijke sleutels.

Tuple

positie = (52.0, 4.3)
print(positie[0])

Een tuple is handig voor vaste waarden.

Set

nummers = {1, 2, 2, 3}
print(nummers)

Een set bewaart unieke waarden.

Try except

try:
    getal = int(input("Getal: "))
    print(10 / getal)
except ZeroDivisionError:
    print("Niet delen door nul")
except ValueError:
    print("Typ een geldig getal")

Vang fouten netjes op.

Bestand schrijven

with open("notities.txt", "w") as bestand:
    bestand.write("Mijn eerste bestand")

Maak een tekstbestand aan.

Bestand lezen

with open("notities.txt", "r") as bestand:
    inhoud = bestand.read()
print(inhoud)

Lees tekst uit een bestand.

Pathlib

from pathlib import Path

for bestand in Path(".").iterdir():
    print(bestand.name)

Werk overzichtelijk met bestanden en mappen.

Eigen module importeren

# bestand: helpers.py
# def dubbel(x): return x * 2

from helpers import dubbel
print(dubbel(5))

Verdeel code over meerdere bestanden.

Python Essentials 2

Verdieping — modules, OOP en bestanden

List comprehension

kwadraten = [x * x for x in range(1, 6)]
print(kwadraten)

Maak snel een nieuwe lijst.

Lambda

verdubbel = lambda x: x * 2
print(verdubbel(8))

Korte functie voor simpele bewerkingen.

Sorteren met key

personen = [{"naam": "A", "score": 8}, {"naam": "B", "score": 6}]
personen.sort(key=lambda p: p["score"], reverse=True)
print(personen)

Sorteer op een veld in een dictionary.

Class

class Product:
    def __init__(self, naam, prijs):
        self.naam = naam
        self.prijs = prijs

item = Product("muis", 25)
print(item.naam)

Maak eigen objecten met eigenschappen.

Method

class Rekening:
    def __init__(self):
        self.saldo = 0

    def stort(self, bedrag):
        self.saldo += bedrag

Een method is een functie binnen een class.

Inheritance

class Dier:
    def geluid(self):
        print("geluid")

class Hond(Dier):
    pass

Hond().geluid()

Een class kan gedrag erven van een andere class.

Datetime

from datetime import datetime

nu = datetime.now()
print(nu.strftime("%d-%m-%Y %H:%M"))

Werk met datum en tijd.

JSON lezen

import json

with open("config.json") as bestand:
    data = json.load(bestand)
print(data)

JSON wordt veel gebruikt voor instellingen en API's.

JSON schrijven

import json

data = {"theme": "dark", "autosave": True}
with open("config.json", "w") as bestand:
    json.dump(data, bestand, indent=2)

Sla instellingen netjes op.

Requests voorbeeld

import requests

response = requests.get("https://example.com")
print(response.status_code)

Haal gegevens op van een website of API.

Regex

import re

tekst = "Mijn code is AB-123"
match = re.search(r"[A-Z]{2}-\d{3}", tekst)
print(match.group())

Zoek patronen in tekst.

Virtual environment

python -m venv .venv
.venv\Scripts\activate
pip install flask

Houd packages per project gescheiden.

CSV en data

Werken met CSV-bestanden

CSV lezen

import csv

with open("data.csv", newline="") as bestand:
    reader = csv.reader(bestand)
    for rij in reader:
        print(rij)

Lees elke rij uit een CSV-bestand.

CSV met kolomnamen

import csv

with open("personen.csv", newline="") as bestand:
    reader = csv.DictReader(bestand)
    for rij in reader:
        print(rij["naam"])

Gebruik kolomnamen in plaats van indexen.

Gemiddelde berekenen

import csv

totaal = 0
aantal = 0
with open("cijfers.csv", newline="") as bestand:
    reader = csv.DictReader(bestand)
    for rij in reader:
        totaal += float(rij["cijfer"])
        aantal += 1
print(totaal / aantal)

Bereken resultaten uit tabeldata.

CSV schrijven

import csv

with open("output.csv", "w", newline="") as bestand:
    writer = csv.writer(bestand)
    writer.writerow(["naam", "score"])
    writer.writerow(["Student", 8])

Maak zelf een CSV-bestand aan.

CSV filteren

import csv

with open("leden.csv", newline="") as bestand:
    reader = csv.DictReader(bestand)
    for rij in reader:
        if rij["status"] == "actief":
            print(rij)

Toon alleen rijen die voldoen aan een voorwaarde.

CSV naar lijst

import csv

with open("data.csv", newline="") as bestand:
    records = list(csv.DictReader(bestand))
print(records[0])

Bewaar alle rijen om later verder te verwerken.

Praktische scripts

Veelgebruikte scripts voor schoolprojecten

Bestand bestaat controleren

from pathlib import Path

pad = Path("data.csv")
if pad.exists():
    print("Bestand gevonden")
else:
    print("Bestand ontbreekt")

Handig voordat je een bestand probeert te openen.

Map aanmaken

from pathlib import Path

Path("resultaten").mkdir(exist_ok=True)
print("Map is klaar")

Maak automatisch een outputmap aan.

Alle bestanden tonen

from pathlib import Path

for bestand in Path(".").glob("*.csv"):
    print(bestand.name)

Zoek alle CSV-bestanden in een map.

Regels tellen

with open("data.csv", "r", encoding="utf-8") as f:
    regels = f.readlines()

print("Aantal regels:", len(regels))

Controleer snel hoeveel regels een bestand heeft.

Logbestand maken

with open("log.txt", "a", encoding="utf-8") as log:
    log.write("Script succesvol gestart\n")

Bewaar meldingen tijdens het uitvoeren van je script.

Veilig overschrijven

from pathlib import Path

output = Path("output.csv")
if output.exists():
    keuze = input("Overschrijven? y/n ")
    if keuze.lower() != "y":
        quit()

Vraag toestemming voordat je een bestaand bestand vervangt.

Decimal gebruiken

from decimal import Decimal

bedrag = Decimal("120.00")
verschil = Decimal("240.00") - bedrag
print(verschil)

Gebruik Decimal voor geldbedragen in plaats van float.

Kolomindex zoeken

headers = ["id", "naam", "bedrag"]
kolom = headers.index("bedrag")
print(kolom)

Zoek een kolom op naam in een CSV-header.

Debuggen

Fouten zoeken en terminalgebruik

Script starten

py collect.py

Voer een Python-script uit vanuit PowerShell of terminal.

Huidige map bekijken

import os
print(os.getcwd())

Controleer waar Python zoekt naar je bestanden.

Variabele testen

amount = 120
print("DEBUG amount =", amount)

Gebruik tijdelijke printregels om waarden te controleren.

Exception tonen

try:
    open("data.csv")
except Exception as fout:
    print("Foutmelding:", fout)

Laat zien waarom iets niet lukt.

Package installeren

py -m pip install flask

Installeer packages met dezelfde Python-versie als je gebruikt.

Requirements maken

py -m pip freeze > requirements.txt

Sla geïnstalleerde modules op voor je project.

Python-versie checken

py --version
python --version

Controleer welke Python op je computer beschikbaar is.

Stoppen bij fout

if not Path("leden.csv").exists():
    print("leden.csv ontbreekt")
    quit()

Stop netjes als een verplicht bestand ontbreekt.

Ontwerp

Stroomschema en scriptontwerp

Basisproces

Start
↓
Lees input
↓
Verwerk gegevens
↓
Schrijf output
↓
Stop

Een simpel ontwerp voordat je begint met programmeren.

Beslissing

if bestand_bestaat:
    lees_bestand()
else:
    toon_foutmelding()

Een if-statement wordt in een flowchart vaak een ruit.

Input/output

inputbestand = "leden.csv"
outputbestand = "output.csv"

Noteer duidelijk welke bestanden het script gebruikt.

Validatie

verplichte_kolommen = ["id", "bedrag"]
for kolom in verplichte_kolommen:
    if kolom not in headers:
        print("Kolom ontbreekt")

Controleer of de brondata bruikbaar is.

Foutpad

try:
    maak_output()
except PermissionError:
    print("Outputbestand is geopend")

Een professioneel ontwerp toont ook wat er gebeurt bij fouten.

Succesmelding

print("Proces succesvol afgerond")

Laat de gebruiker weten dat het script klaar is.

Mini-projecten

Voorbeelden die lijken op echte opdrachten

Betalingen controleren

leden = {"9834": "Marach", "4388": "Ulsdens"}
betalingen = {"9834": 240, "4388": 180}
minimum = min(betalingen.values())

for lid, bedrag in betalingen.items():
    if bedrag > minimum:
        print(lid, leden[lid], bedrag - minimum)

Een compacte versie van een administratie-opdracht.

Cijfers beoordelen

cijfers = [5.4, 6.7, 8.1, 4.9]
for cijfer in cijfers:
    print("voldoende" if cijfer >= 5.5 else "onvoldoende")

Gebruik voorwaarden om resultaten te classificeren.

Voorraad controleren

voorraad = {"laptop": 3, "muis": 0}
for product, aantal in voorraad.items():
    if aantal == 0:
        print(product, "bijbestellen")

Zoek automatisch producten die op zijn.

Rapportregel maken

naam = "Student"
score = 8
regel = f"{naam};{score};geslaagd"
print(regel)

Maak een regel die je later naar CSV kunt schrijven.

Data opschonen

naam = "  Marach,  Fina  "
print(" ".join(naam.split()))

Verwijder dubbele spaties en rommelige invoer.

Samenvatting tonen

aantal = 2
totaal = 180
print(f"{aantal} records verwerkt, totaal €{totaal}")

Geef na afloop een duidelijke samenvatting.

Resultaten

Downloadbare projectresultaten

Wanneer er een ZIP-resultaat wordt klaargemaakt, komt het automatisch op de downloadpagina te staan.

Open downloads