Zowat alle moderne programmeertalen ondersteunen functies. Wanneer je een functie definieert, plak je eigenlijk een naam op een opeenvolgend aantal instructies (de implementatie). Dit noemen we de functiedefinitie. De functie implementeren of schrijven noemen we ook wel de functie definiëren.
De instructies kunnen afhankelijk zijn van een (aantal) parameter(s). Je kan daarna de functie gebruiken door specifieke woorden in te vullen als parameters van de functie. Dit noemen we de functie-oproep.
❗ Begrip - Functie
Een functie is een blok code binnen een computerprogramma, met een eigen naam en een duidelijk begin en einde. De functie kan elders in het computerprogramma opgeroepen worden.
In Python ziet een functiedefinitie er als volgt uit:
def naam(parameters):
implementatie
return resultaten
👀 Voorbeeld - Plus
def plus(x, y): som = x + y return som
Je kan een functie vergelijken met een doos met implementatie (de zogenoemde black box) waar je een aantal parameters in stopt, en een resultaat uitkomt. De implementatie is enkel gekend door de programmeur die de functie geschreven heeft. Een programmeur die de functie gebruikt door ze op te roepen, heeft geen weet van de implementatiedetails en wil enkel de correcte resultaten krijgen voor de gegeven parameters.
Een functie bestaat uit 4 onderdelen:
opwarming()
.leeftijd
.lengtes = 10 + leeftijd/2
.return
.Niet elke functie heeft een resultaat; soms zijn enkel de instructies belangrijk. Denk bijvoorbeeld aan print
, waar er uitvoer getoond wordt aan de gebruiker, maar intern in het programma heeft print
geen resultaat. Wanneer er meerdere resultaten worden teruggegeven, worden die gescheiden door een komma. Bijvoorbeeld return x, y
.
Wanneer de functie gedefinieerd is (met naam, parameters, implementatie, resultaten), kan je de functie gebruiken of oproepen.
👀 Voorbeeld - Graden Celcius
Het volgende stukje code is een functiedefinitie van een functie celsius die een gegeven temperatuur in graden Fahrenheit omzet in een temperatuur in graden Celsius.
# naam: celsius # parameters: fahrenheit def celsius(fahrenheit): # implementatie celsius = (fahrenheit - 32) / (1.8) # resultaat return celsius
Je kan nu zelf deze functie gebruiken om Fahrenheit naar Celsius om te zetten door ze op te roepen met de juiste parameter: de temperatuur (in graden Fahrenheit). Bijvoorbeeld:
print(celsius(100))
Probeer dit eens uit in de sandbox.
💻 Programmeeroefening - Gemiddelde functie
Schrijf in de editor hieronder een functie die het gemiddelde neemt van twee getallen. Gebruik
gemiddelde
als functienaam, maak twee parameters voor de getallen, schrijf de correcte implementatie, en geef het resultaat terug.Je hoeft de functie niet aan te roepen, de functie definiëren is voldoende.