Lær å bruke for- og while-løkker, range(), break og continue, og nøstede løkker.
Hundre linjer blir til to
Forestill deg at du skal skrive ut tallene fra 1 til 100. Uten løkker måtte du skrive 100 print-setninger. Med en løkke klarer du det med to linjer. En løkke er en kontrollstruktur som gjentar en kodeblokk flere ganger – selve motoren for å automatisere repetitivt arbeid.
Python har to typer. Den første er for-løkken, som itererer over en sekvens og kjører blokken én gang for hvert element. Aller vanligst er den sammen med range():
for i in range(5):
print(i)Dette skriver ut 0, 1, 2, 3, 4 – fem tall, men de starter på 0. Funksjonen range() er fleksibel: range(1, 6) gir 1 til 5 (stopper før 6), range(0, 20, 5) gir 0, 5, 10, 15 med steg på 5, og range(10, 0, -1) teller nedover fra 10 til 1. For-løkker kan også gå gjennom bokstavene i en tekst eller elementene i en liste, slik som for frukt in frukter:.
Et klassisk eksempel er en gangetabell. Med range(1, 11) går i fra 1 til 10, og for hver verdi skriver du ut tall * i. Triks: "-" * 20 gjentar bindestreken 20 ganger og lager en pen skillelinje.
Når du ikke vet hvor mange ganger
Den andre løkketypen er while-løkken, som gjentar blokken så lenge en betingelse er sann. Betingelsen sjekkes før hver runde:
teller = 1
while teller <= 5:
print(teller)
teller += 1Legg merke til teller += 1. Glemmer du den, blir betingelsen alltid sann, og du får en uendelig løkke som aldri stopper. Hovedregelen er enkel: bruk for når du vet på forhånd hvor mange ganger løkken skal kjøre, og while når den skal fortsette til noe endrer seg – for eksempel til brukeren svarer «ja».
Noen ganger vil du styre løkken mer finmasket. Da har du to spesialord. break stopper løkken umiddelbart og hopper ut. Skal du finne det første tallet mellom 50 og 100 som er delelig med 7, lar du løkken break-e ved første treff (56). continue derimot hopper over resten av denne runden og går videre til neste – fint hvis du vil skrive ut alle tall fra 1 til 10 unntatt de som er delelige med 3.
En kraftig kombinasjon er while True sammen med break. while True er en bevisst uendelig løkke som du bryter ut av med break når en bestemt ting skjer – perfekt for et gjette-spill der du fortsetter til brukeren gjetter riktig tall.
Løkker inni løkker
Du kan plassere en løkke inne i en annen – det kalles nøstede løkker. Den indre løkken kjøres helt ferdig for hver runde i den ytre. Tenk på et rutenett: den ytre løkken styrer radene, den indre styrer kolonnene.
for rad in range(1, 6):
for stjerne in range(rad):
print("*", end="")
print()Dette tegner en trapp av stjerner – én på første rad, to på neste, og så videre opp til fem. To detaljer er verdt å forstå: end="" gjør at neste utskrift kommer på samme linje i stedet for ny, og den tomme print() etter den indre løkken lager linjeskiftet mellom radene. Samme teknikk gir en hel gangetabell der i er raden og j er kolonnen.
Til slutt et praktisk eksempel som samler det meste. Du vil la brukeren skrive inn tall til de skriver 0, og så vise sum, antall og gjennomsnitt:
total = 0
antall = 0
while True:
tall = float(input("Tall: "))
if tall == 0:
break
total += tall
antall += 1
if antall > 0:
print(f"Gjennomsnittet er {total / antall:.2f}")Vi bruker while True med break fordi vi ikke vet hvor mange tall som kommer, og vi sjekker if antall > 0 før vi deler – ellers ville vi risikert divisjon med null.
Oppsummering
Løkker lar deg gjenta kode uten å skrive den om og om igjen. For-løkken itererer over en sekvens, ofte laget med range(start, stopp, steg), og passer når du vet antall runder. While-løkken gjentar så lenge en betingelse er sann og passer når du ikke vet antallet på forhånd – men husk å oppdatere betingelsen, ellers blir løkken uendelig.
Med break hopper du ut av en løkke, og med continue hopper du til neste runde. Kombinasjonen while True med break gir kontrollerte utganger. Og med nøstede løkker – løkke inni løkke – kan du bygge rutenett, mønstre og tabeller, der den ytre løkken styrer radene og den indre kolonnene.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.