Løkker i Python: oppgaver med fasit
15 oppgaver i løkker i Python i 1P, med løsning steg for steg og fasit. Prøv selv først, og trykk «Vis løsning» når du vil sjekke svaret. Oppgavene er sortert fra kort til lang løsning.
Lær dette i Sophus: 8.2 Løkker: gjenta en utregning, 8.3 Endre et program i Matematikk 1P, med video og øving med nye tall hver gang. Se leksjonen
Lettere oppgaver
Oppgave 1
Hvilke tall gir range(4)?
- A: 1, 2, 3, 4
- B: 0, 1, 2, 3
- C: 0, 1, 2, 3, 4
- D: 1, 2, 3
Vis løsning på oppgave 1
range(4) begynner på 0 og stopper før 4: 0, 1, 2, 3.
Det er 4 runder.
Fasit: B: 0, 1, 2, 3
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 2
Hvor mange linjer skriver programmet ut?
belop = 1000
for aar in range(2):
belop = belop * 1.1
print(round(belop, 2))
Vis løsning på oppgave 2
print er rykket inn og kjøres i hver av de 2 rundene: 2 linjer.
Fasit: 2
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 3
Hvilken utregning gjør programmet?
belop = 5000
for aar in range(3):
belop = belop * 1.04
- A: 5 000 × 1,04³
- B: 5 000 + 5 000 × 0,04 × 3
- C: 5 000 × 1,04⁴
- D: 5 000 × 1,04 × 3
Vis løsning på oppgave 3
Beløpet ganges med 1,04 3 ganger: 5 000 × 1,04³.
Fasit: A: 5 000 × 1,04³
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 4
Hvilke tall gir range(3)?
- A: 0, 1, 2
- B: 1, 2
- C: 1, 2, 3
- D: 0, 1, 2, 3
Vis løsning på oppgave 4
range(3) begynner på 0 og stopper før 3: 0, 1, 2.
Det er 3 runder.
Fasit: A: 0, 1, 2
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 5
Hvor mange ganger skriver programmet «Hei»?
for i in range(6):
print("Hei")
Vis løsning på oppgave 5
range(6) gir tallene 0, 1, … , 5.
Det er 6 runder, så «Hei» skrives 6 ganger.
Fasit: 6
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Middels vanskelige
Oppgave 6
Hva skriver programmet ut?
belop = 2000
for aar in range(2):
belop = belop * 1.03
print(round(belop, 2))
Vis løsning på oppgave 6
Beløpet ganges med 1,03 i hver av de 2 rundene: 2 000 × 1,03² = 2 121,8.
Fasit: 2 121,8
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 7
Hva skriver programmet ut?
belop = 1000
aar = 0
while belop <= 1300:
belop = belop * 1.05
aar = aar + 1
print(aar)
Vis løsning på oppgave 7
Etter 5 år er beløpet omtrent 1 276,3, og etter 6 år omtrent 1 340,1.
Det er over 1 300, så løkka stopper, og aar er 6.
Fasit: 6
Fra leksjon 8.3 Endre et program · Se forklaringen i videoen
Oppgave 8
Programmet finner når 1 000 kr med 5 % rente blir mer enn 1 200 kr. Hva må du endre for å finne når beløpet blir mer enn 1 500 kr?
belop = 1000
aar = 0
while belop <= 1200:
belop = belop * 1.05
aar = aar + 1
print(aar)
- A: Bytte 1 200 med 1 500 i while-linja
- B: Bytte aar = 0 med aar = 1 500
- C: Bytte 1.05 med en annen vekstfaktor
- D: Bytte print(aar) med print(1 500)
Vis løsning på oppgave 8
Grensen står i while-linja.
Bytt 1 200 med 1 500, så er resten av programmet likt.
Fasit: A: Bytte 1 200 med 1 500 i while-linja
Fra leksjon 8.3 Endre et program · Se forklaringen i videoen
Oppgave 9
Hva betyr linja «while belop <= 2 000:»?
- A: Gjenta 2 000 ganger
- B: Gjenta til beløpet er nøyaktig 2 000
- C: Kjør én gang hvis beløpet er under 2 000
- D: Gjenta så lenge beløpet er mindre enn eller lik 2 000
Vis løsning på oppgave 9
<= betyr mindre enn eller lik.
Løkka går så lenge beløpet ikke har passert 2000.
Fasit: D: Gjenta så lenge beløpet er mindre enn eller lik 2 000
Fra leksjon 8.3 Endre et program · Se forklaringen i videoen
Oppgave 10
Renten endres til 2 %. Hva skal stå i stedet for 1.05 i programmet?
belop = belop * 1.05
- A: 1.2
- B: 2
- C: 0.02
- D: 1.02
Vis løsning på oppgave 10
2 % rente gir vekstfaktoren 1 + 0,02 = 1,02, som skrives 1.02 i Python.
Fasit: D: 1.02
Fra leksjon 8.3 Endre et program · Se forklaringen i videoen
Mer krevende
Oppgave 11
Hvor mange ganger skriver programmet «Hei»?
for i in range(3):
print("Hei")
Vis løsning på oppgave 11
range(3) gir tallene 0, 1, … , 2.
Det er 3 runder, så «Hei» skrives 3 ganger.
Fasit: 3
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 12
Hva skriver programmet ut?
belop = 5000
for aar in range(3):
belop = belop * 1.02
print(round(belop, 2))
Vis løsning på oppgave 12
Beløpet ganges med 1,02 i hver av de 3 rundene: 5 000 × 1,02³ = 5 306,04.
Fasit: 5 306,04
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 13
Linja som øker telleren, mangler. Hva skriver programmet ut?
belop = 1000
aar = 0
while belop <= 1100:
belop = belop * 1.05
print(aar)
Vis løsning på oppgave 13
aar får verdien 0 og endres aldri, fordi linja aar = aar + 1 mangler.
Programmet skriver ut 0.
Fasit: 0
Fra leksjon 8.3 Endre et program · Se forklaringen i videoen
Oppgave 14
Hva er den siste linja programmet skriver ut?
for n in range(1, 7):
pris = n * 45
print(pris)
Vis løsning på oppgave 14
range(1, 7) gir n = 1, 2, … , 6.
Den siste linja er 6 × 45 = 270.
Fasit: 270
Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen
Oppgave 15
Programmet gir en feilmelding. Hva er feil?
saldo = 15000
aar = 0
while saldo = 20000:
saldo = saldo * 1.06
aar = aar + 1
print(aar)
- A: print skal stå øverst
- B: while-linja bruker =, som setter en verdi, i stedet for å sammenligne
- C: aar må starte på 1
- D: Linja etter while mangler innrykk
Vis løsning på oppgave 15
= setter en verdi, og == sjekker.
I while-linja skal det stå en sammenligning: while saldo < 20 000:
Fasit: B: while-linja bruker =, som setter en verdi, i stedet for å sammenligne
Fra leksjon 8.3 Endre et program · Se forklaringen i videoen
Fasit
Vis fasit til alle oppgavene
- Oppgave 1: B: 0, 1, 2, 3
- Oppgave 2: 2
- Oppgave 3: A: 5 000 × 1,04³
- Oppgave 4: A: 0, 1, 2
- Oppgave 5: 6
- Oppgave 6: 2 121,8
- Oppgave 7: 6
- Oppgave 8: A: Bytte 1 200 med 1 500 i while-linja
- Oppgave 9: D: Gjenta så lenge beløpet er mindre enn eller lik 2 000
- Oppgave 10: D: 1.02
- Oppgave 11: 3
- Oppgave 12: 5 306,04
- Oppgave 13: 0
- Oppgave 14: 270
- Oppgave 15: B: while-linja bruker =, som setter en verdi, i stedet for å sammenligne
Oppgavene hører til leksjonene 8.2–8.3 i modulen Programmering med Python, som øves til del 2. Les mer om eksamen i 1P, og bruk formelarket for 1P når du øver.
Les også
- Løkker: gjenta en utregning – forklart steg for steg
- Endre et program – forklart steg for steg
- Del 1 uten hjelpemidler: oppgaver med fasit
- Les Python-programmer: oppgaver med fasit
- Alle oppgavene i 1P
- Begrepene i 1P forklart
Oppgavene er laget av Sophus med de samme oppgavemalene som i kurset, og løsningene er kontrollert av en regnekontroll. Ser du likevel en feil, si fra på kontakt@sophus.no, så retter vi den.