Sprint 5 · Functies & scope  ·  US2: Parameters & return

Als developer, wil ik functies die hun invoer via parameters krijgen en hun uitkomst met return teruggeven, zodat ik één functie met steeds andere waarden kan gebruiken en met de uitkomst verder kan rekenen.

Taak 1: print() vs return

Wat is het verschil tussen output tonen en een waarde teruggeven?

print() stuurt naar scherm, return geeft waarde

Nu je functies schrijft, moet je weten: wat doe je met het resultaat?

print() — zichtbaar op scherm

Output zien, maar niet gebruiken in de code:

def say_hello():
    print("Hallo!")

say_hello()  # Print naar scherm: "Hallo!"
msg = say_hello()  # msg = None (print geeft niets terug)

return — waarde voor de code

Resultaat gebruiken, niet zien:

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

result = calculate(5, 3)  # result = 8
print(result)  # Zelf kiezen: tonen of niet

Samengesteld voorbeeld

def process_temp(temp):
    if temp > 30:
        return "warm"
    return "koel"

status = process_temp(35)  # status = "warm"
print(f"Status: {status}")

Interactieve demo: Het verschil zien

Beide functies doen hetzelfde: vermenigvuldigen met 2. Maar kijk wat je erna kan doen!

Invoer:
❌ MET print():
def double_print(x):
    print(x * 2)
Output op scherm:
Na functie:
result = double_print(n)
new = result + 10
# ❌ TypeError!
✅ MET return:
def double_return(x):
    return x * 2
Waarde in variabele:
Na functie:
result = double_return(n)
new = result + 10
print(new)
# ✅ werkt: n * 2 + 10
Vuistregel: Gebruik print() voor output zien. Gebruik return als je het resultaat wilt gebruiken in de code.
>_ Probeer het voorbeeld

Twee functies die hetzelfde uitrekenen. De ene print, de andere geeft terug. Kijk goed wat er in a en b terechtkomt.

Probeer daarna: schrijf print(f"a + 10 = {a + 10}") erbij. Welke fout verwacht je?

Klik op de knop om de uitvoer van het voorbeeld te zien.

Opdracht: Klimaatcontrole per ruimte

Scenario: een kantoorgebouw meet in elke ruimte de temperatuur. Een ruimte is comfortabel van 18 tot en met 26 °C. De facilitair medewerker wil één overzicht met een regel per ruimte, en onderaan hoeveel ruimtes aandacht nodig hebben.

Gegeven:

temperatures = {"serverruimte": 24, "kantoor": 31, "kelder": 12, "kantine": 26}
MIN_TEMP = 18
MAX_TEMP = 26

Je taak: schrijf twee functies — één die beoordeelt, en één die een regel tekst maakt — en gebruik ze om het overzicht te printen. Bepaal zelf de namen en parameters.

Acceptatiecriteria:

  • De beoordelende functie geeft True of False terug en print zelf niets
  • De tweede functie geeft een regel terug met ruimte, temperatuur en grens, bijvoorbeeld kantoor: 31°C — te warm (max: 26°C)
  • Het aantal ruimtes dat aandacht nodig heeft, wordt geteld met de uitkomst van de beoordelende functie
  • Grenswaarden kloppen: 18 en 26 zijn nog comfortabel, 17 en 27 niet
  • Voeg je een ruimte toe aan de dictionary, dan werkt alles zonder dat je een functie aanpast