Hello world
print("Hallo wereld!")Controleer of Python werkt en tekst kan tonen.
Python oefenportaal
Een rustige leeromgeving met Python-voorbeelden, CSV-oefeningen, bestandscontrole, foutafhandeling en examenachtige scripts voor VS Code.
Overzicht
Deze pagina bevat 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
print("Hallo wereld!")Controleer of Python werkt en tekst kan tonen.
naam = "Student"
leeftijd = 17
print(naam, leeftijd)Bewaar informatie onder een duidelijke naam.
waarde = 3.14
print(type(waarde))Bekijk of iets een string, integer, float of boolean is.
voornaam = "Alex"
achternaam = "Jansen"
print(voornaam + " " + achternaam)Plak tekst aan elkaar met de plus-operator.
product = "laptop"
prijs = 799
print(f"De {product} kost €{prijs}")Een nette manier om variabelen in tekst te zetten.
naam = input("Wat is je naam? ")
print("Welkom", naam)Laat de gebruiker zelf iets typen.
leeftijd = int(input("Leeftijd: "))
print(leeftijd + 1)Input is standaard tekst, dus soms moet je converteren.
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.
prijs = 19.987
print(round(prijs, 2))Rond kommagetallen netjes af.
ingelogd = True
print(ingelogd)Een boolean is waar of niet waar.
# Dit is uitleg bij de code
print("Code wordt uitgevoerd")Commentaar helpt om je code begrijpelijk te maken.
BTW_PERCENTAGE = 21
bedrag = 100
print(bedrag * BTW_PERCENTAGE / 100)Hoofdletters gebruik je vaak voor vaste waarden.
Python Essentials 1
cijfer = 7
if cijfer >= 5.5:
print("Voldoende")
else:
print("Onvoldoende")Laat Python een keuze maken.
score = 82
if score >= 90:
print("Uitstekend")
elif score >= 70:
print("Goed")
else:
print("Oefenen")Gebruik elif voor meerdere mogelijkheden.
leeftijd = 18
pas = True
if leeftijd >= 18 and pas:
print("Toegang")Beide voorwaarden moeten kloppen.
admin = False
docent = True
if admin or docent:
print("Mag openen")Eén van de voorwaarden moet kloppen.
for nummer in range(1, 6):
print(nummer)Herhaal code een vast aantal keer.
pogingen = 0
while pogingen < 3:
print("Probeer opnieuw")
pogingen += 1Herhaal zolang een voorwaarde waar is.
for getal in range(10):
if getal == 5:
break
print(getal)Stop een loop eerder.
for getal in range(6):
if getal == 3:
continue
print(getal)Sla één ronde over en ga verder.
for rij in range(3):
for kolom in range(3):
print(rij, kolom)Een loop binnen een loop.
vakken = ["Python", "Linux", "Netwerk"]
if "Python" in vakken:
print("Gevonden")Controleer of een waarde in een lijst zit.
keuze = input("1 = start, 2 = stop: ")
if keuze == "1":
print("Starten")
elif keuze == "2":
print("Stoppen")Een eenvoudige basis voor consolemenu's.
wachtwoord = input("Wachtwoord: ")
if len(wachtwoord) >= 8:
print("Sterk genoeg")
else:
print("Te kort")Gebruik voorwaarden om invoer te controleren.
Python Essentials 1
def tel_op(a, b):
return a + b
print(tel_op(4, 6))Maak code herbruikbaar met functies.
def groet(naam="bezoeker"):
print("Hallo", naam)
groet()Gebruik een standaard als er niets wordt meegegeven.
vakken = ["Python", "Web", "Data"]
print(vakken[0])Bewaar meerdere waarden in één variabele.
taken = []
taken.append("opdracht maken")
taken.append("testen")
print(taken)Voeg items toe aan een lijst.
student = {"naam": "Alex", "klas": "ICT"}
print(student["klas"])Bewaar gegevens met duidelijke sleutels.
positie = (52.0, 4.3)
print(positie[0])Een tuple is handig voor vaste waarden.
nummers = {1, 2, 2, 3}
print(nummers)Een set bewaart unieke waarden.
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.
with open("notities.txt", "w") as bestand:
bestand.write("Mijn eerste bestand")Maak een tekstbestand aan.
with open("notities.txt", "r") as bestand:
inhoud = bestand.read()
print(inhoud)Lees tekst uit een bestand.
from pathlib import Path
for bestand in Path(".").iterdir():
print(bestand.name)Werk overzichtelijk met bestanden en mappen.
# bestand: helpers.py
# def dubbel(x): return x * 2
from helpers import dubbel
print(dubbel(5))Verdeel code over meerdere bestanden.
Python Essentials 2
kwadraten = [x * x for x in range(1, 6)]
print(kwadraten)Maak snel een nieuwe lijst.
verdubbel = lambda x: x * 2
print(verdubbel(8))Korte functie voor simpele bewerkingen.
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 Product:
def __init__(self, naam, prijs):
self.naam = naam
self.prijs = prijs
item = Product("muis", 25)
print(item.naam)Maak eigen objecten met eigenschappen.
class Rekening:
def __init__(self):
self.saldo = 0
def stort(self, bedrag):
self.saldo += bedragEen method is een functie binnen een class.
class Dier:
def geluid(self):
print("geluid")
class Hond(Dier):
pass
Hond().geluid()Een class kan gedrag erven van een andere class.
from datetime import datetime
nu = datetime.now()
print(nu.strftime("%d-%m-%Y %H:%M"))Werk met datum en tijd.
import json
with open("config.json") as bestand:
data = json.load(bestand)
print(data)JSON wordt veel gebruikt voor instellingen en API's.
import json
data = {"theme": "dark", "autosave": True}
with open("config.json", "w") as bestand:
json.dump(data, bestand, indent=2)Sla instellingen netjes op.
import requests
response = requests.get("https://example.com")
print(response.status_code)Haal gegevens op van een website of API.
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.
python -m venv .venv
.venv\Scripts\activate
pip install flaskHoud packages per project gescheiden.
CSV en data
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.
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.
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.
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.
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.
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
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.
from pathlib import Path
Path("resultaten").mkdir(exist_ok=True)
print("Map is klaar")Maak automatisch een outputmap aan.
from pathlib import Path
for bestand in Path(".").glob("*.csv"):
print(bestand.name)Zoek alle CSV-bestanden in een map.
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.
with open("log.txt", "a", encoding="utf-8") as log:
log.write("Script succesvol gestart\n")Bewaar meldingen tijdens het uitvoeren van je script.
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.
from decimal import Decimal
bedrag = Decimal("120.00")
verschil = Decimal("240.00") - bedrag
print(verschil)Gebruik Decimal voor geldbedragen in plaats van float.
headers = ["id", "naam", "bedrag"]
kolom = headers.index("bedrag")
print(kolom)Zoek een kolom op naam in een CSV-header.
Debuggen
py collect.pyVoer een Python-script uit vanuit PowerShell of terminal.
import os
print(os.getcwd())Controleer waar Python zoekt naar je bestanden.
amount = 120
print("DEBUG amount =", amount)Gebruik tijdelijke printregels om waarden te controleren.
try:
open("data.csv")
except Exception as fout:
print("Foutmelding:", fout)Laat zien waarom iets niet lukt.
py -m pip install flaskInstalleer packages met dezelfde Python-versie als je gebruikt.
py -m pip freeze > requirements.txtSla geïnstalleerde modules op voor je project.
py --version
python --versionControleer welke Python op je computer beschikbaar is.
if not Path("leden.csv").exists():
print("leden.csv ontbreekt")
quit()Stop netjes als een verplicht bestand ontbreekt.
Ontwerp
Start
↓
Lees input
↓
Verwerk gegevens
↓
Schrijf output
↓
StopEen simpel ontwerp voordat je begint met programmeren.
if bestand_bestaat:
lees_bestand()
else:
toon_foutmelding()Een if-statement wordt in een flowchart vaak een ruit.
inputbestand = "leden.csv"
outputbestand = "output.csv"Noteer duidelijk welke bestanden het script gebruikt.
verplichte_kolommen = ["id", "bedrag"]
for kolom in verplichte_kolommen:
if kolom not in headers:
print("Kolom ontbreekt")Controleer of de brondata bruikbaar is.
try:
maak_output()
except PermissionError:
print("Outputbestand is geopend")Een professioneel ontwerp toont ook wat er gebeurt bij fouten.
print("Proces succesvol afgerond")Laat de gebruiker weten dat het script klaar is.
Mini-projecten
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 = [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 = {"laptop": 3, "muis": 0}
for product, aantal in voorraad.items():
if aantal == 0:
print(product, "bijbestellen")Zoek automatisch producten die op zijn.
naam = "Student"
score = 8
regel = f"{naam};{score};geslaagd"
print(regel)Maak een regel die je later naar CSV kunt schrijven.
naam = " Marach, Fina "
print(" ".join(naam.split()))Verwijder dubbele spaties en rommelige invoer.
aantal = 2
totaal = 180
print(f"{aantal} records verwerkt, totaal €{totaal}")Geef na afloop een duidelijke samenvatting.