Modulelessen (1/4)
zeker en terug
Een functie is een herbruikbaar codeblok: u definieert het eenmalig met def,
bel het dan zo vaak als je wilt. Functies maken code modulair,
testbaar en zelfdocumenterend.
Basissyntaxis
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defintroduceert de functie, gevolgd door de naam en de parameters in haakjes.- De
:opent het ingesprongen blok. returnstuurt een waarde terug naar de beller en beëindigt de functie.
Expliciet return versus impliciet None
Als u return niet schrijft, retourneert de functie impliciet None:
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # NoneEen kale return (geen waarde) retourneert ook None, maar kan dienen als een vroege
uitgang:
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"Meerdere waarden? Retourneer een tupel
Python heeft geen "out-parameters": om meer dan één ding terug te geven, retourneert u a tuple (vaak uitgepakt door de beller).
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring: ingebouwde documentatie
De eerste string binnen de functie is de docstring: deze verschijnt in
help(fn) en als tooltip in IDE's.
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2Toepassingsgebied: lokale variabelen
Variabelen die binnen een functie zijn gedefinieerd, zijn lokaal: ze bestaan niet buiten.
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not definedFuncties retourneren altijd iets
Als een functie in Python niet expliciet een return statement declareert of een lege return bevat, retourneert deze impliciet de speciale waarde None. Er zijn geen functies die geen waarde retourneren.
Probeer het
Definieer een functie `double(x)` die `x * 2` retourneert. Roep het dan aan met 7 en wijs het resultaat toe aan `result`. Evalueer 'resultaat'.
Toon hint
Gebruik retour x * 2.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Definieer `min_max(nums)` dat een tupel `(minimum, maximum)` retourneert. Roep het op `[3, 1, 4, 1, 5, 9, 2, 6]` en pak het resultaat uit in `mn, mx`. Evalueer `(mn, mx)`.
Toon hint
retourneert min(nums), max(nums)
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Definieer een functie \`is_palindrome(text)\` die \`True\` retourneert als de invoertekenreeks gelijk is aan de omgekeerde versie, en anders \`False\`. Test de functie met \`is_palindrome("radar")\` als laatste expressie.
Toon hint
Gebruik het segmenteren van tekst[::-1] om de tekenreeks om te keren en te vergelijken met de originele tekst.
Oplossing beschikbaar na 3 pogingen