For-løkken
Gjenta handlinger automatisk med Pythons for-løkke.
🔄 Hva er en for-løkke?
En for-løkke lar deg gjenta en kodeblokk for hvert element i en liste, eller et bestemt antall ganger. I stedet for å skrive den samme koden om og om igjen, lar løkken datamaskinen gjøre jobben for deg.
Uten løkke vs. med løkke
# Uten løkke (tungvint!):
print("Hei, Ola!")
print("Hei, Kari!")
print("Hei, Per!")
# Med for-løkke (smart!):
elever = ["Ola", "Kari", "Per"]
for elev in elever:
print("Hei, " + elev + "!")💡 Slik fungerer det: Variabelen
elev tar
verdien av ett element om gangen fra listen. Koden inne i løkken kjøres
én gang for hvert element.🔢 range() – gjenta et antall ganger
Funksjonen range() genererer en sekvens av tall, og brukes
ofte sammen med for-løkker:
range() med for-løkke
# Telle fra 0 til 4
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# Telle fra 1 til 5
for i in range(1, 6):
print(i) # 1, 2, 3, 4, 5
# Telle i steg av 2
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8| Syntaks | Forklaring | Resultat |
|---|---|---|
range(5) | 0 til 4 | 0, 1, 2, 3, 4 |
range(2, 7) | 2 til 6 | 2, 3, 4, 5, 6 |
range(0, 10, 3) | 0 til 9, steg 3 | 0, 3, 6, 9 |
📋 Løkke over en liste
Praktiske eksempler
# Summere alle tall i en liste
tall = [10, 20, 30, 40, 50]
total = 0
for t in tall:
total += t
print("Summen er:", total) # Summen er: 150
# Finne det største tallet
tall = [23, 7, 45, 12, 38]
storst = tall[0]
for t in tall:
if t > storst:
storst = t
print("Størst:", storst) # Størst: 45🔁 Løkke med indeks
Noen ganger trenger du både indeksen og verdien. Da kan du kombinere range() og len():
Løkke med indeks
farger = ["rød", "grønn", "blå", "gul"]
for i in range(len(farger)):
print(f"Indeks {i}: {farger[i]}")
# Resultat:
# Indeks 0: rød
# Indeks 1: grønn
# Indeks 2: blå
# Indeks 3: gul📐 Bygge lister med løkker
En vanlig teknikk er å starte med en tom liste og fylle den med en for-løkke:
Bygge en liste
# Lage en liste med kvadrattall
kvadrattall = []
for i in range(1, 6):
kvadrattall.append(i ** 2)
print(kvadrattall) # [1, 4, 9, 16, 25]
# Lage en gangetabell
gangetabell_7 = []
for i in range(1, 11):
gangetabell_7.append(7 * i)
print(gangetabell_7) # [7, 14, 21, 28, 35, 42, 49, 56, 63, 70]🔗 Nestet for-løkke
Du kan plassere en for-løkke inne i en annen – dette kalles en nestet løkke:
Nestet løkke: Gangetabell
# Skrive ut gangetabellen (1-5)
for i in range(1, 6):
for j in range(1, 6):
resultat = i * j
print(f"{i} x {j} = {resultat}")
print("---") # Skillelinje mellom rad