...
- Beskriv med egne ord hva en funksjon er og hvorfor man bruker funksjoner.
- Skriv ned syntaksen (hvordan en funksjon ser ut) til en funksjon.
- Kan en funksjon være uten innparametre – hvorfor (ikke)?
- Kan en funksjon være uten returverdi – hva er isåfall vitsen?
- Hva menes med å kalle på en funksjon? Gi et eksempel.
Oppgave 2 - Funksjoner
- Lag en funksjon
velkommen
som skriver ut til skjermen: ”Velkommen til de røde elefanters evighet.” Lag en
...
funksjon addisjon som tar inn to tall (
...
tall1 og tall2) og returnerer summen av disse.
...
Code Block language py title Eksempel på kjøring #print(addisjon(4, 5.2)) 9.2 >>>
...
Oppgave 3 - Negative tall
Lag en funksjon, er_negativ
, som funksjonen erNegativ
som tar inn et heltall og returnerer True
dersom tallet er negativt, og ellers False
.
Bonus: Hva slags datatype(integer/string/float/boolean) returneres fra funksjonen, og hva kan den dermed brukes som?
Code Block | ||||
---|---|---|---|---|
| ||||
#print(erNegativ(-3))
True
#print(erNegativ(5))
False |
Oppgave 4 - Absoluttverdi
Lag en funksjon, absolutt
, som funksjon absolutt
som tar inn et heltall og returnerer absoluttverdien til tallet. Her kan du benytte deg av den innebygde funksjonen abs() hvis det er ønskelig.
Code Block | ||||
---|---|---|---|---|
|
...
#print(absolutt(-4))
4
#print(absolutt(5))
5 |
Oppgave 5 - Minste tall
- Lag en funksjon
minsteTall
som tar inn 2 to tall,a
ogb
, og returnerer det minste tallet. Hvis tallene er like har det ikke noe å si om du velger å returnerea
ellerb
så lenge et av dem returneres. - Lag en ny funksjon
minsteAvTreTall
som tar inn 3 tre tall,a
,b
ogc
, og returnerer det minste tallet.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#print(minsteTall(2,5))
2
#print(minsteTall(4, 4))
4
#print(minstAvTreTall(6,1,3))
1
#print(minstAvTreTall(2,5,2))
2 |
Oppgave 6 - Index til minste tall i liste
Lag en funksjon, indeks_minste_element
, som tar inn en liste med heltall og returnerer indeksen (posisjonen i tabellenlisten) til det minste elementet i denne tabellen.
...
listen.
Code Block | ||||
---|---|---|---|---|
| ||||
#print(indeks_minste_element([1,2,5,3,6,9,0,3,5]))
6
#print(indeks_minste_element([1,0,2,3,4,5,6,0]))
1 |
Oppgave 7 - Negative tall i tabell
Lag en funksjon, funksjon negativ_tabell
, som som tar inn en liste med heltall og returnerer True
hvis ett eller flere av tallene i tabellen listen er negative. Ellers skal den returnere False
.
Hint: Her kan du bruke to av funksjonene( erNegativ() og indeks_minste_tall() ) som du allerede har laget for å løse oppgaven.
Oppgave 7 - Fakultet
...
Code Block | ||||
---|---|---|---|---|
| ||||
#print(negativ_tabell([0,1,2,3,4,5,6,2,32]))
False
#print(negativ_tabell([1,2,1,3,-3,1,4,2]))
True
#print(negativ_tabell([-1,2,1,-2,2,-3]))
True |
Oppgave 8 - Tilfeldig tall
- Lag en funksjon som tar inn nedre og øvre grense
...
- som argumenter, og returnerer et tilfeldig tall i dette intervallet.
- Ta inn den nedre og den øvre grensen fra brukeren, og kall funksjonen med disse som argumenter.
Code Block | ||||
---|---|---|---|---|
| ||||
Skriv inn nedre grense: 1
Skriv inn øvre grense: 19
15
Skriv inn nedre grense: 12
Skriv inn øvre grense: 84
84 |
Oppgave 9 - Fakultet
Lag en funksjon fakultet
som tar inn et heltall og returnerer fakultetet til tallet. Fakultet av et tall n er definert somFor eksempel er 6! = 1*2*3*4*5*6 = 720
Code Block | ||||
---|---|---|---|---|
| ||||
#print(fakultet(6))
720
#print(fakultet(4))
24 |
Oppgave 10 - Den lille multiplikasjonstabellen
Lag en metode som funksjon gangetabell
som fyller ut den lille multiplikasjonstabellen (d.v.s. fra 1- til 10-gangen), og returnerer den. Du trenger ikke å ha med tallene som multipliseres i svartabellen din – kun svarene.
Oppgave 9 - Funksjonskall inne i funksjoner
Lag to nye funksjoner, derden ene funksjonen skal kalles inne i den andre funksjonen.
Oppgave 3 - Funksjonskall i funksjon
- Lag en funksjon
lagVerb
som tilfeldig returnerer ett av 5 verb i presens. - Lag en funksjon
lagNavn
som tilfeldig returnerer ett av 5 navn. - Lag en funksjon
lagAdverb
som tilfeldig returnerer ett av 5 adverb. - Lag en funksjon
lagSetning
som returnerer en setning bestående av et navn, et verb og et adverb, f.eks. «Bob kjører fort». - Til slutt; Bruk en løkke til å skrive ut 10 tilfeldige setninger på skjermen.
Code Block | ||||
---|---|---|---|---|
| ||||
for linje in gangetabell():
print(linje)
#output:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
[4, 8, 12, 16, 20, 24, 28, 32, 36, 40]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
[6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
[7, 14, 21, 28, 35, 42, 49, 56, 63, 70]
[8, 16, 24, 32, 40, 48, 56, 64, 72, 80]
[9, 18, 27, 36, 45, 54, 63, 72, 81, 90]
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100] |
Oppgave 11 - Funksjonskall i funksjon
a) Lag en funksjon lagVerb
som tar inn en liste av fem verb og tilfeldig returnerer ett av verbene.
Code Block | ||||
---|---|---|---|---|
| ||||
#print(lagVerb(['sover','spiser','snakker','sutrer','stresser']))
stresser |
b) Lag en funksjon lagNavn
som tar inn en liste bestående av fem navn og tilfeldig returnerer ett av navnene i listen.
Code Block | ||||
---|---|---|---|---|
| ||||
#print(lagNavn(['Amalie','Bob Bernt','Carina','Daniel','Elise']))
Bob Bernt |
c) Lag en funksjon lagSetning(liste1, liste2)
som benytter seg av a) og b) og returnerer en setning bestående av to ord. Først et navn og deretter et verb. liste1
er en liste bestående av fem navn og liste2
er en liste bestående av fem verb.
Code Block | ||||
---|---|---|---|---|
| ||||
liste1 = ['Amalie','Bob Bernt','Carina','Daniel','Elise']
liste2 = ['sover','spiser','snakker','sutrer','stresser']
print(lagSetning(liste1, liste2))
#output:
Daniel stresser |
Oppgave 12
...
- Lotto
Lag en funksjon, lotto
, som genererer 7 tilfeldige tall fra 1 til 34 ([1, 34]
) og returnerer disse i en liste.
...
Code Block | ||||
---|---|---|---|---|
| ||||
>>> lotto()
[11, 7, 30, 22, 11, 8, 8]
>>> |
Oppgave 13 - Sum av tall
a) Lag en funksjon sumAvTall
som tar inn et tall n og, returnerer summen av tallene fra 1
til n
ved hjelp av en løkke.
Code Block | ||||
---|---|---|---|---|
| ||||
#print(sumAvTall(6))
21
#print(sumAvTall(3))
6 |
b) Hva er den minste n
som gjør at funksjonen sumAvTall
returnerer en verdi større enn 500? Bruk en while-løkke til å kalle funksjonen sumAvTall
med stadig større n
-er, og skriv til slutt svaret på spørsmålet til skjerm.
Code Block | ||||
---|---|---|---|---|
| ||||
32 er det minste tallet som gjør at funksjonen sumAvTall returnerer en verdi over 500 |
Oppgave 14 - Vårt første lille program
...
- Lag en funksjon
’storst_tall
’ som - som tar inn en liste og returnerer det største tallet i listen. Du kan anta at alle tallene i listen er heltall
.Lag en ny py-fil (en PYTHON skriptfil) og kall den ’kontroll- .
py’. I denne filen skal du:- opprette en liste,
testliste
, som er[0, 3, 1, 9, 8, 3, 8]
- kalle funksjonen
- opprette en liste,
’storst_tall
’ med - med
testliste
som
- med
parameter- argument
- lagre verdien som returneres i en
variabel, - variabel
storste
- skrive ut
storste
til skjermen
- variabel
...
2.
- Lag en funksjon ’
dobbel_tall
’ som som tar inn et tall og returnerer det dobbelte av tallet
I ’kontroll.py’:- kall funksjonen du nettopp har lagd,
dobbel_tall
, medstorste
som inputargument - lagre denne verdien som
dobbel_storste
- skriv
dobbel_storste
ut til skjermen
- kall funksjonen du nettopp har lagd,
- Lag en funksjon ’
’kontroll.py’ skal brukes videre.
3.
- Lag en funksjon ’
sirkel_areal
’ som som tar inn et tall (radius) og returnerer arealet av en sirkel på grunnlag av dette. Pi skal bruke en konstant innebygd i python (google er din venn).Ved å bruke math.pi kan du få en eksakt verdi for Pi.
I ’kontroll.py’:- a. kall funksjonen du nettopp har lagd, ’
sirkel_areal
’ ,dobbel_storste
som inputargument - b. lagre denne verdien som
areal
- c. skriv ut
areal
til skjermen
- a. kall funksjonen du nettopp har lagd, ’
- Lag en funksjon ’
Gratulerer, du har nå laget et ekte program i python!
Code Block | ||||
---|---|---|---|---|
| ||||
#1.
#print(storste)
9
#2.
#print(dobbel_storste)
18
#3.
#print(areal)
1017.8760197630929 #her var radiusen 18 |