← Python/Denken in functies
Les 1 van 8
MODULE 03 · 01◷ 20 min

Laat een functie iets teruggeven

Na deze les kun je
  • Een functie definiëren en aanroepen
  • Print en return uit elkaar houden
  • Herkennen waar een functie stopt

Een programma kan dezelfde voorbereidingstijd nodig hebben in een planning, een melding en een totaaltelling. Je wilt die berekening één keer opschrijven en haar antwoord op verschillende plekken gebruiken. Een functie maakt dat mogelijk.

Een stukje werk met een naam

Een functie is een benoemd stukje code dat je kunt uitvoeren wanneer je het nodig hebt. Met def preparation_minutes(): schrijf je de definitie: je legt vast wat de functie doet. De dubbele punt en vier spaties inspringing ken je al van keuzes en lussen.

De definitie voert de ingesprongen berekening nog niet uit. Daarvoor schrijf je een aanroep, bijvoorbeeld preparation_minutes(). De lege haakjes horen bij de aanroep; in de volgende les vul je ze met invoer.

Een functie kan een retourwaarde aan de aanroeper geven. De opdracht return berekent de waarde die erachter staat, verlaat de huidige functie en levert die waarde af bij de aanroep. De aanroeper kan het antwoord bewaren, ermee rekenen of het tonen.

Bereken één keer, gebruik het antwoord verder

Dit zelfstandige voorbeeld telt drie minuten klaarzetten en vier minuten controleren op. Druk op Voorbeeld uitvoeren en volg daarna waar het getal zeven opnieuw wordt gebruikt.

Een voorbereidingstijd hergebruiken
def preparation_minutes():
    return 3 + 4

duration = preparation_minutes()
print(duration)
print(duration * 2)
Verwachte uitvoer
7
14

duration = preparation_minutes() heeft twee kanten: eerst wordt de functie rechts aangeroepen, daarna krijgt de naam links het teruggegeven getal. De eerste print toont zeven. De tweede rekent met datzelfde gehele getal en toont veertien.

StapWat gebeurt er?
DefinitiePython onthoudt de functie; de optelling gebeurt nog niet.
AanroepDe functie berekent drie plus vier.
ReturnZeven gaat terug naar de plek van de aanroep.
VerdergaanDe aanroeper bewaart en gebruikt het antwoord.

De definitie blijft beschikbaar na de aanroep. Roep je haar opnieuw aan, dan voert Python haar code opnieuw uit. Een functie is dus geen eenmalige knop die daarna verdwijnt.

Veelgemaakte fout: tonen is niet teruggeven

print schrijft iets naar de uitvoer; return levert iets aan de aanroeper. Dat verschil merk je zodra een volgende berekening het antwoord nodig heeft. Bekijk deze zelfstandige foutvariant en voorspel de twee uitvoerregels.

Wel tonen, geen waarde teruggeven
def preparation_minutes():
    print(3 + 4)

duration = preparation_minutes()
print(duration)
Verwachte uitvoer
7
None

De functie toont zelf zeven, maar geeft dat getal niet terug. Bij het einde van de functie ontvangt de aanroeper daarom None, de speciale waarde voor het ontbreken van een gewone retourwaarde. print(duration) toont vervolgens None.

Bewaar het berekende getal met return als andere code ermee verder moet werken. Laat de aanroeper bepalen of hij het wil afdrukken. Zo kun je dezelfde functie later ook gebruiken op een plek waar geen bericht in de uitvoer gewenst is.

Je eigen functies

Een retourwaarde behoudt haar type: True is een boolean en "True" is tekst. Na return mag ook een berekening staan, zoals een optelling. Zodra Python een return uitvoert, stopt die aanroep; een tweede return daaronder wordt niet meer bereikt.

De opdrachten gebruiken andere functies dan het voorbeeld. De tests roepen jouw functies zelf aan en vergelijken hun antwoorden en typen. Houd daarom de opgegeven functienamen aan; alleen het verwachte antwoord printen is onvoldoende.

AAN DE SLAG 0/4
1

Geef de begroeting terug

Laat welcome() de tekst Welkom bij Codelab. teruggeven.

2

Bewaar het booleaanse type

Laat ready() de boolean True teruggeven.

3

Bereken bij een aanroep

Laat minutes() acht en zeven optellen en als int teruggeven.

4

Stop bij de eerste return

Laat stop_here() eerst de tekst eerste teruggeven.

Wat je meeneemt

  • def legt een functie vast; haakjes bij haar naam voeren haar uit.
  • return levert een waarde terug en beëindigt de huidige aanroep.
  • print toont uitvoer; zonder retourwaarde krijgt de aanroeper None.

Hierna geef je invoer aan een functie mee, zodat dezelfde berekening met verschillende waarden kan werken.

main.py
UitvoerPython
›
›_

Hier komt je resultaat.

Voer je code uit en ontdek
wat je hebt gemaakt.

0/4 stappen
EVEN MEEKIJKEN

Bekijk hoe het kan.

Je mag de oplossing bekijken. Deze poging telt dan niet mee als afgeronde les. Met Reset kun je daarna opnieuw zelf oefenen.