Funksjoner

En FUNKSJON er en utregning med et navn som du kan bruke igjen og igjen. Du lager den med def, gir den PARAMETERE i parentesen, og sender svaret tilbake med return. Når du KALLER funksjonen, for eksempel areal(6, 4), får parameterne verdiene 6 og 4, og funksjonen gir svaret tilbake til stedet den ble kalt fra.

def areal(b, h):
    return b * h / 2

print(areal(6, 4))

Her er b lik 6 og h lik 4, så funksjonen regner ut 6 * 4 / 2 og sender tilbake 12. Programmet skriver ut 12.0. Merk forskjellen på return og print: return gir verdien tilbake så du kan regne videre med den, mens print bare viser den på skjermen.

Delene av en funksjon
DelEksempelHva den gjør
defdef areal(b, h):lager funksjonen og gir den et navn
parametereb og hverdiene funksjonen får inn
returnreturn b * h / 2sender svaret tilbake
kallareal(6, 4)bruker funksjonen med bestemte verdier

Tips

  • Selve def-linjen regner ingenting ut. Funksjonen gjør ikke noe før du kaller den.
  • Rekkefølgen på verdiene i kallet bestemmer hvilken parameter som får hvilken verdi: f(10, 4) gir a = 10 og b = 4.
  • En funksjon uten return gir ingenting tilbake. Skriver du bare print inni den, kan du ikke bruke svaret videre.

Eksempel: Kalle en funksjon

Funksjonen er def f(x): return 2 * x + 3. Hva skriver print(f(4)) ut?

Løsning:
  1. Kallet f(4) gir parameteren x verdien 4
  2. funksjonen regner ut 2 · 4 + 3 = 8 + 3 = 11
  3. return sender 11 tilbake til print, som skriver ut 11.
Fra kall til svar
StegVerdi
x4
2 * x8
2 * x + 311

Oppgaver

Prøv minst én oppgave på hvert nivå.

Lett(3)

L-31Funksjonen er def f(x): return x + 1. Hva skriver print(f(5)) ut?

Vis fasit
  1. x er 5
  2. 5 + 1
  3. 6

L-32Hvilket ord starter definisjonen av en funksjon i Python?

Vis fasit
  1. Funksjoner lages med def, mens return sender svaret tilbake
  2. def

L-33Funksjonen er def dobbel(x): return 2 * x. Hva skriver print(dobbel(7)) ut?

Vis fasit
  1. x er 7
  2. 2 · 7
  3. 14
Middels(3)

M-31Funksjonen er def f(x): return x * x. Hva skriver print(f(3) + f(2)) ut?

Vis fasit
  1. f(3) er 3 · 3 = 9
  2. f(2) er 2 · 2 = 4
  3. 9 + 4
  4. 13
To kall
KallSvar
f(3)9
f(2)4
f(3) + f(2)13

M-32Hva er forskjellen på return og print i en funksjon?

Vis fasit
  1. Med return kan du bruke svaret videre, for eksempel f(3) + f(2)
  2. print viser bare en verdi
  3. return gir verdien tilbake, print viser den

M-33Funksjonen er def f(a, b): return a - b. Hva skriver print(f(10, 4)) ut?

Vis fasit
  1. a er 10 og b er 4
  2. 10 - 4
  3. 6
Vanskelig(3)

V-31Funksjonen er def f(a, b): return a - b. Hva skriver print(f(4, 10)) ut?

Vis fasit
  1. Nå er a lik 4 og b lik 10
  2. 4 - 10
  3. -6, så rekkefølgen på verdiene i kallet har betydning
Rekkefølgen har betydning
KallabSvar
f(10, 4)1046
f(4, 10)410-6

V-32Funksjonen er def g(x): return x * 2. Hva skriver print(g(g(3))) ut?

Vis fasit
  1. Innerst: g(3) er 6
  2. så g(6) er 12
  3. 12

V-33Funksjonen er def f(x): return x ** 2 - 1. For hvilken av verdiene 1, 2 og 3 gir f(x) svaret 8?

Vis fasit
  1. f(1) er 1 - 1 = 0
  2. f(2) er 4 - 1 = 3
  3. f(3) er 9 - 1 = 8
  4. 3
Prøv alle tre
xf(x)
10
23
38