Je hebt geleerd hoe je functies gebruikt in een programma. Soms is het ook handig om je eigen functies te programmeren. Hier zijn een aantal redenen voor:

In het onderstaande diagram wordt een functie getoond.

functie

De vertaling van dit schema naar pseudocode ziet er als volgt uit:

def functienaam(parameter1, parameter2, ...):
    python statement
    python statement
    ...
    return retourwaarde

De syntax van een functie bestaat uit de volgende delen:

De blackbox uit het schema vertaal je in de pseudocode door Python statements. In het binnenste van een functie kan je alle controlestructuren gebruiken, maar ook ingebouwde functies, andere zelf-gedefinieerde functies enz.

Een functie is dus een soort van op zichzelf staand programma waarbij de parameters invoerwaarden bijhouden en je via het sleutelwoord return een waarde teruggeeft. Een beetje naar analogie van input() en print(). De black-box stelt dan de bewerkingen voor tussen invoer en uitvoer.

Een voorbeeld

In onderstaand voorbeeld zie je de functie aantal_wortels(). De parameters zijn a, b en c. De functie bepaalt op hoeveel plaatsen de grafiek van een tweedegraadsfunctie \(f\) de X-as snijdt.

\[f(x) = a \cdot x^2 + b \cdot x + c\]
def aantal_wortels(a, b, c):
    determinant = (b ** 2) - (4 * a * c)
    
    wortels = "2 wortels"
    if determinant < 0:
        wortels = "geen wortels"
    elif determinant == 0:
        wortels = "1 wortel"
    
    return wortels