Als developer, wil ik functies die hun invoer via parameters krijgen en hun uitkomst met return teruggeven, zodat ik één functie met steeds andere waarden kan gebruiken en met de uitkomst verder kan rekenen.
Meerdere waarden teruggeven en meteen uitpakken in variabelen.
Functies geven meestal één waarde terug. Maar soms wil je meerdere waarden krijgen.
def get_user_info():
return ("Alice", 30, "admin")
info = get_user_info()
name = info[0]
age = info[1]
role = info[2] # Onhandig: indexen
def get_user_info():
return ("Alice", 30, "admin")
name, age, role = get_user_info()
# Alle waarden meteen beschikbaar!
coords = (10, 20)
# Kan met comma: coords = 10, 20
# Dezelfde waarden, compact
Twee functies die elk twee waarden teruggeven. De aanroeper pakt ze meteen uit.
Probeer daarna: pak het resultaat van min_max() uit in drie
variabelen in plaats van twee. Welke fout verwacht je?
Scenario: Je maakt een validatie-functie die checkt of een wachtwoord sterk genoeg is. Je wilt zowel weten OF het OK is, als WAAROM niet (als dat het geval is).
Starter-code:
password = "test123"
def validate_password(pwd):
# TODO: return (True, None) als sterk
# anders: (False, reden_waarom)
# Sterk = minimaal 8 tekens EN minimaal 1 cijfer
pass
# Test cases:
# validate_password("abc") → (False, "Te kort")
# validate_password("abcdefgh") → (False, "Geen cijfer")
# validate_password("abc12345") → (True, None)
Acceptatiecriteria:
(bool, string of None)(True, None) als wachtwoord geldig is(False, boodschap) als wachtwoord ongeldig is met duidelijke redenis_valid, reason = validate_password(...)