← Python/Denken in functies
Les 2 van 8
MODULE 03 · 02◷ 22 min

Geef invoer mee met parameters

Na deze les kun je
  • Parameters met argumenten vullen
  • De volgorde van argumenten bewaken
  • Eén functie voor verschillende waarden gebruiken

Een thermostaat moet in verschillende kamers uitrekenen hoeveel warmer of kouder het moet worden. De rekenregel blijft gelijk, maar de huidige en gewenste temperatuur verschillen. Met parameters geef je die veranderende invoer aan één functie mee.

Namen voor de invoer

Een parameter is een naam tussen de haakjes van een functiedefinitie. Bij def temperature_change(current, target): zijn current en target de parameters. Binnen de functie gebruik je die namen alsof de waarden al bekend zijn.

Een argument is de concrete waarde die je bij een aanroep meegeeft. In temperature_change(16, 21) zijn zestien en eenentwintig de argumenten. Python koppelt ze hier op volgorde: current krijgt zestien en target krijgt eenentwintig.

Daarom heten dit positionele argumenten. De eerste waarde hoort bij de eerste parameter, de tweede bij de tweede. De komma scheidt beide waarden; hij verandert de waarden zelf niet.

Eén rekenregel, verschillende kamers

De verandering is de gewenste temperatuur min de huidige temperatuur. Een positief antwoord betekent opwarmen, een negatief antwoord afkoelen en nul betekent dat er niets hoeft te veranderen. Voorspel de drie antwoorden en druk op Voorbeeld uitvoeren.

Van de huidige naar de gewenste temperatuur
def temperature_change(current, target):
    return target - current

print(temperature_change(16, 21))
print(temperature_change(22, 19))
print(temperature_change(20, 20))
Verwachte uitvoer
5
-3
0

Dezelfde return-opdracht wordt bij iedere aanroep opnieuw berekend. Je schrijft geen aparte functie voor elke kamer. De namen current en target krijgen bij een volgende aanroep de argumenten van die nieuwe aanroep.

Aanroepcurrenttargettarget min current
temperature_change(16, 21)16215
temperature_change(22, 19)2219-3
temperature_change(20, 20)20200

Lees een rij van links naar rechts: eerst de koppeling, dan de berekening, dan de retourwaarde. Daarmee kun je een functie ook op papier volgen. De uitvoer ontstaat hier pas door de print rond iedere aanroep.

Veelgemaakte fout: de plaatsen verwisselen

Bij optellen valt een verwisseling van twee getallen niet op. Bij aftrekken verandert het antwoord wel. Deze foutvariant bevat de juiste functie, maar één aanroep geeft de temperaturen in de verkeerde volgorde mee.

Dezelfde functie, omgekeerde invoer
def temperature_change(current, target):
    return target - current

print(temperature_change(16, 21))
print(temperature_change(21, 16))
Verwachte uitvoer
5
-5

De eerste aanroep vraagt hoe je van zestien naar eenentwintig gaat en geeft vijf terug. De tweede doet precies het omgekeerde en geeft min vijf terug. Python kent de bedoeling van de kamer niet: het volgt de positie van de argumenten.

Controleer daarom niet alleen de formule, maar ook welke waarde aan welke naam wordt gekoppeld. Benoem bij het lezen van een aanroep de betekenis hardop: huidige temperatuur, daarna gewenste temperatuur. In de volgende les leer je argumenten ook op naam mee te geven.

Meer dan getallen teruggeven

Een parameter hoeft niet altijd een getal te bevatten. Een functie kan bijvoorbeeld een tekst en een aantal ontvangen en die met een f-string combineren. Het resultaat is dan tekst, terwijl de invoer uit verschillende typen bestaat.

Ook een vergelijking mag direct achter return staan. Het antwoord is dan de boolean True of False, zonder dat je die eerst hoeft af te drukken. Bij een inclusief bereik combineer je twee vergelijkingen met and; beide grenzen horen er zelf ook bij.

De opdrachten passen deze ideeën toe op oppervlakten, voorraad, grenzen en labels. De tests roepen jouw functies met verschillende argumenten aan. Gebruik daarom de parameterwaarden in je berekening en laat hun volgorde overeenkomen met de opdracht.

AAN DE SLAG 0/4
1

Bereken met twee parameters

Geef in rectangle_area(width, height) width maal height terug.

2

Behoud de argumentvolgorde

Laat remaining(total, used) total min used teruggeven, ook bij een tekort.

3

Neem beide grenzen mee

Laat within(value, low, high) True geven binnen het bereik en op beide grenzen, en False daarbuiten.

4

Combineer tekst en getal

Laat stamp(label, count) een tekst zoals Groep: 2 teruggeven.

Wat je meeneemt

  • Een parameter is een naam in de definitie; een argument is invoer bij een aanroep.
  • Positionele argumenten worden van links naar rechts aan parameters gekoppeld.
  • Dezelfde functie kan met andere invoer een getal, boolean of tekst teruggeven.

Hierna maak je afspraken over standaardwaarden en argumenten die je bij naam wilt doorgeven.

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.