9b Return
Je functies met parameters tonen iets op het scherm. Wil je met het resultaat verder rekenen, dan laat je de functie het teruggeven met return. Die waarde kun je opslaan of in een berekening gebruiken.
Een waarde teruggeven
def verdubbel(getal):
return getal * 2
resultaat = verdubbel(5)
print(resultaat) # 10
print(verdubbel(7) + 1) # 15
return getal * 2geeft de uitkomst terug uit de functie.resultaat = verdubbel(5)vangt die waarde op.- Je kunt het resultaat ook direct in een berekening of f-string gebruiken.
print versus return
def verdubbel(getal):
print(getal * 2)
x = verdubbel(5)
print(x)
Het verschil tussen print en return op een rij:
print() | return | |
|---|---|---|
| Wat doet het? | Toont iets op het scherm | Geeft een waarde terug uit de functie |
| Kun je het opslaan? | Nee | Ja: x = mijn_functie(...) |
| Geschikt voor | Output tonen | Berekeningen, beslissingen |
Een functie zónder return levert None op. Maak je een functie om een waarde te berekenen, dan hoort er een return in. Toont de functie alleen iets, dan is print() genoeg.
Er gaat iets mis
Rekenen met een functie zonder return
def verdubbel(getal):
print(getal * 2)
print(verdubbel(5) + 1)
Uitvoer:
10
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
De functie print 10 en geeft None terug, en bij None kun je geen 1 optellen. Vervang de print in de functie door return.
Code na return
def verdubbel(getal):
return getal * 2
print("Klaar met verdubbelen")
print(verdubbel(5)) # 10
Klaar met verdubbelen komt nooit op het scherm. Bij return stopt de functie meteen, dus wat eronder staat draait niet. Zet zo'n regel boven de return.
Speel dit eerst na zonder computer, als rollenspel met briefjes: De functiemachine. Je docent kan de hand-out printen.
Opdracht 9b.1: Kwadraat
Schrijf een functie kwadraat(getal) die getal * getal teruggeeft. Sla het resultaat op en print het.
# Schrijf hier je code
Klik hier voor een tip.
return getal * getal binnen de functie. Daarna resultaat = kwadraat(6) en print(resultaat).
Klik hier voor de oplossing.
def kwadraat(getal):
return getal * getal
resultaat = kwadraat(6)
print(resultaat)
Uitvoer: 36.
def kwadraat(getal):
return getal * getal
resultaat = kwadraat(6)
print(resultaat)Opdracht 9b.2: Max van twee
Schrijf een functie max_van_twee(a, b) die het grootste van twee getallen teruggeeft. Gebruik if/else in de functie.
Verwachte uitvoer:
20
7
5
# Schrijf hier je code
Klik hier voor een tip.
Als a > b, return a. Anders return b. Bij gelijke getallen maakt het niet uit welke je teruggeeft.
Klik hier voor de oplossing.
def max_van_twee(a, b):
if a > b:
return a
else:
return b
print(max_van_twee(10, 20))
print(max_van_twee(7, 3))
print(max_van_twee(5, 5))
def max_van_twee(a, b):
if a > b:
return a
else:
return b
print(max_van_twee(10, 20))
print(max_van_twee(7, 3))
print(max_van_twee(5, 5))Opdracht 9b.3: Rekenmachine met functies
Bouw vier functies die elk een resultaat teruggeven: optellen, aftrekken, vermenigvuldigen, delen. Bij delen moet je eerst checken of b niet 0 is — als dat zo is, geef de tekst "Fout: delen door 0!" terug.
Verwachte uitvoer (bij a = 20, b = 4):
20 + 4 = 24
20 - 4 = 16
20 x 4 = 80
20 / 4 = 5.0
# Schrijf hier je code
Klik hier voor een tip.
aftrekken en vermenigvuldigen zijn één regel (return a - b, return a * b). Bij delen: if b == 0: → return de foutmelding, anders return a / b.
Klik hier voor de oplossing.
def optellen(a, b):
return a + b
def aftrekken(a, b):
return a - b
def vermenigvuldigen(a, b):
return a * b
def delen(a, b):
if b == 0:
return "Fout: delen door 0!"
else:
return a / b
a = 20
b = 4
print(f"{a} + {b} = {optellen(a, b)}")
print(f"{a} - {b} = {aftrekken(a, b)}")
print(f"{a} x {b} = {vermenigvuldigen(a, b)}")
print(f"{a} / {b} = {delen(a, b)}")
Je kunt nu zelf functies schrijven. In het hoofdstuk Modules haal je functies binnen die anderen al voor je schreven, met import.
def optellen(a, b):
return a + b
def aftrekken(a, b):
return a - b
def vermenigvuldigen(a, b):
return a * b
def delen(a, b):
if b == 0:
return "Fout: delen door 0!"
else:
return a / b
a = 20
b = 4
print(f"{a} + {b} = {optellen(a, b)}")
print(f"{a} - {b} = {aftrekken(a, b)}")
print(f"{a} x {b} = {vermenigvuldigen(a, b)}")
print(f"{a} / {b} = {delen(a, b)}")Max-en-min returnt twee waardes tegelijk, en bij minimax geven functies scores aan elkaar door — de hele keten hangt aan return.