Løkker i Python

LøkkerProgrammeringPython
Python · for-løkker · while-løkker

Programmering med løkker

En løkke er kode som gjentas. Når du forstår løkker, kan du få Python til å telle, gjenta beskjeder, lage tabeller, regne summer og styre små spill.

Gjenta kode Bruke range() Forstå innrykk Velge for eller while

Hvorfor bruker vi løkker?

Programmering handler ofte om å gi datamaskinen tydelige instruksjoner. Noen ganger skal den gjøre noe én gang. Andre ganger skal den gjøre det samme mange ganger. Da bruker vi en løkke.

Uten løkke må vi skrive samme linje flere ganger:

Python uten løkke
print("Hei!")
print("Hei!")
print("Hei!")
print("Hei!")
print("Hei!")

Det virker, men det blir fort tungvint. Med en løkke kan vi skrive det kortere og ryddigere:

Samme program med løkke
for i in range(5):
    print("Hei!")
Resultat: Hei! Hei! Hei! Hei! Hei!

Viktig idé: En løkke gjør at vi slipper å kopiere samme kode mange ganger. Hvis vi vil skrive ut «Hei!» åtte ganger, trenger vi bare å endre range(5) til range(8).

For-løkker: når vi vet hvor mange ganger

En for-løkke passer godt når vi vet hvor mange ganger noe skal gjentas. Her ber vi Python telle gjennom tallene i range(10).

Telle med range(10)
for tall in range(10):
    print(tall)
Resultat: 0 1 2 3 4 5 6 7 8 9

Legg merke til noe litt rart: Programmet starter på 0 og stopper før 10. Derfor blir ikke 10 skrevet ut.

range(5)

Starter på 0 og stopper før 5. Gir tallene 0, 1, 2, 3, 4.

range(3, 8)

Starter på 3 og stopper før 8. Gir tallene 3, 4, 5, 6, 7.

range(2, 11, 2)

Starter på 2, stopper før 11 og hopper med 2. Gir 2, 4, 6, 8, 10.

Start, stopp og hopp

Når vi bruker range(), kan vi bestemme hvor løkka starter, hvor den stopper og hvor stort hoppet skal være.

Eksempel 1: Telle fra 5 til 12

range(start, stopp)
for tall in range(5, 13):
    print(tall)
Hvorfor 13? Fordi Python stopper før stopptallet. Hvis vi vil ha med 12, må stopptallet være 13.

Eksempel 2: Tallene i 2-gangen

range(start, stopp, hopp)
for tall in range(2, 51, 2):
    print(tall)
Forklaring: Start på 2. Stopp før 51. Hopp med 2 hver gang. Da får vi 2, 4, 6, 8 ... 50.

Eksempel 3: Telle baklengs

Negativt hopp
for tall in range(10, 0, -1):
    print(tall)
Resultat: 10 9 8 7 6 5 4 3 2 1

Innrykk bestemmer hva som gjentas

I Python er innrykk veldig viktig. Innrykk betyr at koden står litt lenger inn på linjen. Det viser hvilke linjer som hører til løkka.

Begge linjene gjentas

Her har begge print-linjene innrykk. Derfor kjører begge hver runde.

Inne i løkka
for tall in range(3):
    print(tall)
    print("Inne i løkka")

Én linje kjøres etterpå

Her står den siste linjen uten innrykk. Den kjøres først når løkka er ferdig.

Utenfor løkka
for tall in range(3):
    print(tall)

print("Løkka er ferdig")

Huskeregel: Kode med innrykk hører til løkka. Kode uten innrykk ligger utenfor løkka.

While-løkker: så lenge noe er sant

En while-løkke brukes når noe skal gjentas så lenge en betingelse er sann. En betingelse er noe Python kan sjekke, for eksempel tall < 5.

En enkel while-løkke
tall = 0

while tall < 5:
    print(tall)
    tall = tall + 1
Resultat: 0 1 2 3 4
1

Variabelen tall starter på 0.

2

Python sjekker om tall < 5 er sant.

3

Hvis det er sant, kjøres koden med innrykk.

4

Når tall blir 5, stopper løkka.

Pass på evige løkker

Hvis betingelsen aldri blir usann, stopper ikke programmet. Dette kalles en evig løkke.

Ikke gjør dette
tall = 0

while tall < 5:
    print(tall)
Hva er problemet? Verdien til tall endres aldri. Derfor vil tall < 5 alltid være sant.

Når bruker vi for, og når bruker vi while?

Mange elever blander disse to. En enkel huskeregel er: Bruk for når du vet antallet. Bruk while når du venter på at noe skal skje.

Løkketype Brukes når ... Eksempel
for-løkke du vet hvor mange ganger noe skal gjentas. Skriv ut tallene fra 1 til 20.
for-løkke du skal gå gjennom en fast tallrekke. Skriv ut 5-gangen fra 5 til 100.
while-løkke du skal fortsette så lenge en betingelse er sann. Fortsett så lenge saldoen er større enn 0.
while-løkke du ikke vet hvor mange forsøk som trengs. Fortsett til brukeren skriver riktig kodeord.

Eksempel: Legg sammen flere tall

Løkker er nyttige når vi skal gjøre samme handling flere ganger. Her lager vi et program som spør etter fem tall og legger dem sammen.

Summere fem tall
sum = 0

for i in range(5):
    tall = float(input("Skriv et tall: "))
    sum = sum + tall

print("Summen er", sum)

Programmet starter med at sum er 0. Hver gang brukeren skriver inn et tall, legges tallet til summen. Etter fem runder skrives svaret ut.

Hvorfor float? Vi bruker float fordi brukeren da kan skrive inn desimaltall, for eksempel 3.5.

Kort oppsummert

En løkke brukes når kode skal gjentas.

En for-løkke passer når vi vet hvor mange ganger koden skal gjentas.

range() brukes ofte til å lage tallrekker i for-løkker.

En while-løkke passer når koden skal gjentas så lenge en betingelse er sann.

Innrykk bestemmer hvilke linjer som hører til løkka.

I while-løkker må vi passe på at løkka faktisk kan stoppe.

Oppdag mer fra Fagrommet

Abonner nå for å fortsette å lese og få tilgang til hele arkivet.

Fortsett å lese