Ga naar hoofdinhoud

9a Parameters

Je functies uit de vorige les deden altijd precies hetzelfde. Met een parameter geef je een functie informatie mee, en dan kan dezelfde functie verschillende dingen doen.

Een parameter meegeven​

Tussen de haakjes van def zet je de naam van de parameter. Binnen de functie gebruik je hem als gewone variabele:

def begroet(naam):
print(f"Hallo, {naam}!")

begroet("Sara")
begroet("Alex")

Uitvoer:

Hallo, Sara!
Hallo, Alex!
  • naam (tussen de haakjes van def begroet) is de parameter.
  • "Sara" en "Alex" zijn de argumenten: de waardes die je meegeeft bij de aanroep.

Meerdere parameters​

Scheid meerdere parameters met komma's:

def adres(straat, nummer):
print(f"{straat} {nummer}")

adres("Hoofdstraat", 12)
def adres(straat, nummer):
print(f"{straat} {nummer}")

adres(12, "Hoofdstraat")
Voorspel
Wat zet dit programma op het scherm?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

Een argument vergeten

def adres(straat, nummer):
print(f"{straat} {nummer}")

adres("Hoofdstraat")

Uitvoer:

TypeError: adres() missing 1 required positional argument: 'nummer'

Python noemt de functie en de parameter die hij mist. Raden welk nummer je bedoelt kan hij niet.

Een argument te veel

def begroet(naam):
print(f"Hallo, {naam}!")

begroet("Sara", "Alex")

Uitvoer:

TypeError: begroet() takes 1 positional argument but 2 were given

begroet heeft één parameter, dus hij neemt één argument. Wil je twee mensen begroeten, roep hem dan twee keer aan.


Opdracht 9a.1: Welkom met naam​

Maak een functie welkom(naam) die "Welkom, [naam]!" print, en roep hem aan met je eigen naam.

# Schrijf hier je code
Klik hier voor een tip.

def welkom(naam): met een f-string f"Welkom, {naam}!". Roep aan met welkom("Alex").

Klik hier voor de oplossing.
def welkom(naam):
print(f"Welkom, {naam}!")

welkom("Alex")
def welkom(naam):
    print(f"Welkom, {naam}!")

welkom("Alex")

Opdracht 9a.2: Gepersonaliseerde groet​

Schrijf een functie groet(naam, taal) die op basis van de taal een begroeting print. Roep hem drie keer aan.

Verwachte uitvoer:

Hallo, Sara!
Hello, Alex!
Hola, Maria!
# Schrijf hier je code
Klik hier voor een tip.

Binnen de functie: if taal == "nl": → Nederlandse groet, elif taal == "en": → Engelse groet, elif taal == "es": → Spaanse groet. Telkens met {naam} in een f-string.

Klik hier voor de 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")
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")

Opdracht 9a.3: 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.

Verwachte uitvoer (bij driehoek(4) en vierkant(4)):

*
**
***
****

****
****
****
****
# Schrijf hier je code
Klik hier voor een tip.

"*" * i voor de driehoek (groeit per ronde). "*" * grootte voor het vierkant (vaste breedte).

Klik hier voor de 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)

In de volgende les leer je hoe een functie een resultaat teruggeeft met return, zodat je het in de rest van je programma kunt gebruiken.

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)
Waar kom je dit later weer tegen?

Minimax bestaat uit zes kleine functies die elkaar het speelbord doorgeven — parameters zijn daar de lijm tussen de onderdelen.