0%

Zelf functies schrijven · oefening

Geef een waarde terug

Sommige functies voeren een actie uit, zoals een bericht tonen. Andere berekenen of maken een waarde die de rest van het programma kan gebruiken.

Die tweede soort heb je al gebruikt:

letter_count = len("Python")

len("Python") levert het gehele getal 6 op en de toewijzing slaat het op in letter_count.

Je eigen functies kunnen met return waarden opleveren.

def double(number):
    return number * 2

De functieaanroep heeft nu een waarde:

result = double(7)
print(result)

Het argument 7 wordt de waarde van parameter number. De expressie number * 2 levert 14 op. Daarna stuurt return de waarde 14 terug naar de aanroeper, waar die aan result wordt toegewezen.

Een aanroep kan als expressie worden gebruikt

Omdat double(7) een waarde teruggeeft, kun je de aanroep overal gebruiken waar die waarde zinvol is:

Try it

Het resultaat aan een variabele toewijzen is vaak het makkelijkst te lezen, vooral tijdens het leren. De compacte vormen zijn handig als ze duidelijk blijven.

Return beëindigt de aanroep

Als Python bij return komt, stuurt het de waarde meteen terug naar de aanroeper. Latere regels in dat functieblok worden niet uitgevoerd:

def double(number):
    return number * 2
    print("This line is unreachable.")

Zet de belangrijkste berekening voorlopig in één return aan het einde van een kleine functie. Latere hoofdstukken tonen situaties waarin eerder terugkeren logisch is.

Geef informatie terug en beslis daarna hoe je die gebruikt

Deze functie maakt tekst zonder te bepalen waar die tekst naartoe moet:

def make_label(name, place):
    return f"{name} -> {place}"

De ene aanroeper kan het label afdrukken:

print(make_label("Iris", "Oslo"))

Een andere kan het opslaan:

first_trip = make_label("Iris", "Oslo")

Een andere kan het in een lijst zetten:

trips = [make_label("Iris", "Oslo"), make_label("Dev", "Accra")]

De functie blijft bruikbaar, omdat ze het resultaat teruggeeft in plaats van elke volgende beslissing zelf te nemen.

Wat drukt dit programma af?

def add_fee(price):
    return price + 3

total = add_fee(7)
print(total * 2)

Opdracht

Maak make_label(name, place) af zodat de functie een reislabel in deze vorm teruggeeft:

Iris -> Oslo

Behoud vervolgens de bestaande toewijzing en de aanroep van print, zodat het programma het teruggegeven label één keer toont.

Verwachte uitvoer:

Iris -> Oslo

Gebruik na een geslaagde controle Step in de oefeneditor. Kijk hoe Python make_label binnengaat, return bereikt en daarna de teruggegeven string aan label toewijst.