Bereken met twee parameters
Geef in rectangle_area(width, height) width maal height terug.
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.
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.
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.
def temperature_change(current, target):
return target - current
print(temperature_change(16, 21))
print(temperature_change(22, 19))
print(temperature_change(20, 20))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.
| Aanroep | current | target | target min current |
|---|---|---|---|
temperature_change(16, 21) | 16 | 21 | 5 |
temperature_change(22, 19) | 22 | 19 | -3 |
temperature_change(20, 20) | 20 | 20 | 0 |
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.
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.
def temperature_change(current, target):
return target - current
print(temperature_change(16, 21))
print(temperature_change(21, 16))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.
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.
Geef in rectangle_area(width, height) width maal height terug.
Laat remaining(total, used) total min used teruggeven, ook bij een tekort.
Laat within(value, low, high) True geven binnen het bereik en op beide grenzen, en False daarbuiten.
Laat stamp(label, count) een tekst zoals Groep: 2 teruggeven.
Hierna maak je afspraken over standaardwaarden en argumenten die je bij naam wilt doorgeven.
Voer je code uit en ontdek
wat je hebt gemaakt.
Je hoeft het niet in één keer goed te doen. Na het uitvoeren zie je hier welke stappen al kloppen.