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.
| Del | Eksempel | Hva den gjør |
|---|---|---|
def | def areal(b, h): | lager funksjonen og gir den et navn |
| parametere | b og h | verdiene funksjonen får inn |
return | return b * h / 2 | sender svaret tilbake |
| kall | areal(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)gira = 10ogb = 4. - En funksjon uten
returngir ingenting tilbake. Skriver du bareprintinni 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?
- Kallet
f(4)gir parameterenxverdien 4 - funksjonen regner ut 2 · 4 + 3 = 8 + 3 = 11
returnsender 11 tilbake tilprint, som skriver ut 11.
| Steg | Verdi |
|---|---|
| x | 4 |
| 2 * x | 8 |
| 2 * x + 3 | 11 |
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
xer 5- 5 + 1
- 6
L-32Hvilket ord starter definisjonen av en funksjon i Python?
Vis fasit
- Funksjoner lages med
def, mensreturnsender svaret tilbake def
L-33Funksjonen er def dobbel(x): return 2 * x. Hva skriver print(dobbel(7)) ut?
Vis fasit
xer 7- 2 · 7
- 14
Middels(3)
M-31Funksjonen er def f(x): return x * x. Hva skriver print(f(3) + f(2)) ut?
Vis fasit
f(3)er 3 · 3 = 9f(2)er 2 · 2 = 4- 9 + 4
- 13
| Kall | Svar |
|---|---|
f(3) | 9 |
f(2) | 4 |
f(3) + f(2) | 13 |
M-32Hva er forskjellen på return og print i en funksjon?
Vis fasit
- Med
returnkan du bruke svaret videre, for eksempelf(3) + f(2) printviser bare en verdireturngir verdien tilbake,printviser den
M-33Funksjonen er def f(a, b): return a - b. Hva skriver print(f(10, 4)) ut?
Vis fasit
aer 10 ogber 4- 10 - 4
- 6
Vanskelig(3)
V-31Funksjonen er def f(a, b): return a - b. Hva skriver print(f(4, 10)) ut?
Vis fasit
- Nå er
alik 4 ogblik 10 - 4 - 10
- -6, så rekkefølgen på verdiene i kallet har betydning
| Kall | a | b | Svar |
|---|---|---|---|
f(10, 4) | 10 | 4 | 6 |
f(4, 10) | 4 | 10 | -6 |
V-32Funksjonen er def g(x): return x * 2. Hva skriver print(g(g(3))) ut?
Vis fasit
- Innerst:
g(3)er 6 - så
g(6)er 12 - 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
f(1)er 1 - 1 = 0f(2)er 4 - 1 = 3f(3)er 9 - 1 = 8- 3
| x | f(x) |
|---|---|
| 1 | 0 |
| 2 | 3 |
| 3 | 8 |