Værdier retur

Funktioner kan give en værdi tilbage til det sted, hvor funktionen er blevet kaldt. Det kan ske på en række forskellige måder, som vist i eksemplerne på denne side.

Det første eksempel er en simpel funktion, som lægger to tal sammen og returnere resultatet.

# eks4-3-1.py

# Funktion returnere summen af to tal
def plus(a, b):
    return a + b

print(str(plus(4, 6)))

Funktionen har kun en linje med return, hvor de to argumenter bliver lagt sammen. Funktion plus(4, 6) returner summen til str, som her også fungerer ligesom en funktion.

Funktionen kan give en anden type tilbage end argumenternes type, som vist på eksemplet her:

# eks4-3-2.py

# Omsaet et ciffer til tekst
def tal_til_tekst(a):
    if a == 0:   return "nul"
    elif a == 1: return "et"
    elif a == 2: return "to"
    elif a == 3: return "tre"
    elif a == 4: return "fire"
    elif a == 5: return "fem"
    elif a == 6: return "seks"
    elif a == 7: return "syv"
    elif a == 8: return "otte"
    elif a == 9: return "ni"

for i in range(0, 10): print(tal_til_tekst(i))

Denne funktion indeholder 10 returns – en for hvert ciffer. I et større Python program kan denne funktion omsætte et tal til en streng ved at returnere “to” i stedet for 2.

Når Python når til return i definitionen stopper den funktionen, hvilket er vist i dette eksempel:

# eks4-3-2.py

def tael_til(maal):
    a = 0
    while True:
        # Uendelig loekke, hvis return ikke redder os
        a = a + 1
        # check a = maal, hvis ja return
        if a == maal: return a

print(tael_til(10))

Når Python når til return i funktionen vil den stoppe og vende tilbage.

Funktionen kan også give flere værdien tilbage, som vist her:

# eks4-3-4.py

# Giv flere resultater tilbage
def flere_resultater(a, b):
    return a+1, b+1

print(flere_resultater(1, 1))

Funktionen giver en liste tilbage. Mere om lister følger om nogle sider.

Værdien None fra funktioner

Hvis funktionen ikke har nogen return, så vil den returnere værdien “None” (intet på dansk). Funktionerne vist på siderne før returnere en None værdi, da de ikke har noget relevant at returnere.

None kan bruges aktivt i en funktion til at fortælle, at funktionen ikke give noget fornuftigt resultat. I eksemplet herunder returnere funktionen værdien None, hvis Python bliver bedt om at dividere med nul.

# eks4-3-5.py

def divider(a, b):
    if b==0:
        # Division med 0. Gaar ikke returner None
        return None
    else:
        # Lovlig beregning - udfoer
        return a / b

print(divider(8, 2))
print(divider(8, 0))

Prøv at afvikle programmet. Python skriver 4.0, når den bliver bedt om at dividere 8 med 2 og None, når den bliver bedt om at dele med 0.

Du har lært

  • Funktioner kan returnere ingen, en eller flere værdier
  • Funktioner bliver afviklet til return nås.
  • Værdien None betyder at ingenting er returnet. Enten fordi funktionen ikke returnere nogen værdi eller fordi funktionen returnere None specifik