Parameters
Je kunt functies maken met def en ze aanroepen met (). In deze les leer je parameters: informatie meegeven aan een functie zodat hij niet altijd hetzelfde doet.
Een parameter aan een functie meegeven
Tot nu toe deden je functies altijd precies hetzelfde. Met een parameter geef je informatie mee:
def begroet(naam):
print(f"Hallo, {naam}!")
begroet("Sara")
begroet("Alex")
Uitvoer:
Hallo, Sara!
Hallo, Alex!
naamtussen de haakjes vandef begroet(naam):is de parameter."Sara"en"Alex"in de aanroep zijn de argumenten — de waardes die je meegeeft.- Binnen de functie kan je
naamgebruiken als een gewone variabele.
Meerdere parameters
Je kunt zoveel parameters meegeven als je wilt, gescheiden door komma's:
def adres(straat, nummer):
print(f"{straat} {nummer}")
adres("Hoofdstraat", 12)
Probeer zelf
Maak een functie welkom(naam) die "Welkom, [naam]!" print, en roep hem aan met je eigen naam.
def welkom(...): print(...) welkom(...)
✅ Oplossing
def welkom(naam):
print(f"Welkom, {naam}!")
welkom("Alex")
Predict
Wat print dit programma?
def tafel(getal):
print(f"{getal} x 1 = {getal * 1}")
print(f"{getal} x 2 = {getal * 2}")
print(f"{getal} x 3 = {getal * 3}")
tafel(5)
print("---")
tafel(9)
Bekijk het antwoord
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
---
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
Eén functie, twee verschillende uitvoeren — dankzij de parameter.
Run
Voer de code uit en controleer.
Investigate
Wat gebeurt er als je de functie aanroept zonder argument? Probeer dit:
def begroet(naam):
print(f"Hallo, {naam}!")
begroet()
Bekijk het antwoord
Foutmelding:
TypeError: begroet() missing 1 required positional argument: 'naam'
De functie heeft een parameter, dus je móet een argument meegeven. Python kan niet raden wat de naam moet zijn.
Er gaat iets mis
Een veelgemaakte verwarring:
def kwadraat(getal):
print(getal * getal)
resultaat = kwadraat(5)
print(resultaat)
Uitvoer:
25
None
Waarom? De functie print de uitkomst, maar geeft niets terug. resultaat wordt daardoor None ("geen waarde"). Wil je de uitkomst opslaan? Dan moet de functie iets teruggeven — dat leer je in de volgende les met return.
Modify
Pas de code aan zodat de banner-functie een aanpasbaar karakter krijgt.
def banner():
print("=" * 20)
print(" Welkom!")
print("=" * 20)
banner()💡 Tip
Voeg een parameter karakter toe: def banner(karakter):. Vervang "=" door karakter. Roep aan met bijv. banner("#").
✅ Oplossing
def banner(karakter):
print(karakter * 20)
print(" Welkom!")
print(karakter * 20)
banner("#")
Make: Gepersonaliseerde groet
Schrijf een functie groet(naam, taal) die afhankelijk van de taal een begroeting print. Roep hem drie keer aan.
Verwachte uitvoer:
Hallo, Sara!
Hello, Alex!
Hola, Maria!
def groet(naam, taal):
if taal == "nl":
print(...)
elif taal == "en":
print(...)
elif taal == "es":
print(...)
groet("Sara", "nl")
groet("Alex", "en")
groet("Maria", "es")💡 Tip
In elke if/elif-tak: een f-string met {naam} en de juiste begroeting (Hallo, Hello, Hola).
✅ Oplossing
def groet(naam, taal):
if taal == "nl":
print(f"Hallo, {naam}!")
elif taal == "en":
print(f"Hello, {naam}!")
elif taal == "es":
print(f"Hola, {naam}!")
groet("Sara", "nl")
groet("Alex", "en")
groet("Maria", "es")
Make Bonus: Vormen tekenen
Maak twee functies: driehoek(hoogte) en vierkant(grootte). De driehoek groeit per regel; het vierkant is altijd even breed als hoog. Roep ze beide aan onder elkaar.
Verwachte uitvoer (bij driehoek(4) en vierkant(4)):
*
**
***
****
****
****
****
****
def driehoek(hoogte):
for i in range(1, hoogte + 1):
print(...)
def vierkant(grootte):
for i in range(grootte):
print(...)
driehoek(4)
print()
vierkant(4)💡 Tip
"*" * i voor de driehoek (groeit elke regel). "*" * grootte voor het vierkant (altijd zelfde breedte).
✅ Oplossing
def driehoek(hoogte):
for i in range(1, hoogte + 1):
print("*" * i)
def vierkant(grootte):
for i in range(grootte):
print("*" * grootte)
driehoek(4)
print()
vierkant(4)
Je functies tonen iets op het scherm — maar wat als je het resultaat wilt gebruiken voor verdere berekeningen? Dan heb je return nodig, en dat leer je in de volgende les.