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:
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.