Nyckelord: For-loopen

I Python använder man for-loopen för att gå igenom värden i ett itererbart objekt, exempelvis en lista, en sträng eller ett range-objekt. Med range() kan man upprepa kod ett bestämt antal gånger.
Vad är en for-loop?
I Python, använder man for-loopen för att iterera (upprepa) en del av programmet flera gånger. Om antalet iterationer (upprepningar) är ett bestämt antal så är det rekommenderat man att att använda for-loopen.
Ibland har man ett kodsegment som man vill upprepa flera gånger om. Istället för att skriva samma kod flera gånger, kan vi istället utnyttja for-loopen som upprepar koden ett fixt antal gånger.
For-loopen i Python
- Upprepar ett kodsegment ett specifikt antal gånger.
- Loopvariabeln får ett nytt värde vid varje iteration. Det behöver inte vara ett tal eller en räknare.
- När man vet i förhand hur många gånger man vill upprepa koden, är for-loopen att föredra över while-loopen.
Hur fungerar For-loopen i Python?
En for-loop hämtar ett värde i taget från det itererbara objektet och kör kodblocket för varje värde. När det inte finns fler värden avslutas loopen. Med range(5) blir värdena 0, 1, 2, 3 och 4.
Python sköter hämtningen av nästa värde automatiskt. Du behöver inte öka loopvariabeln själv.
Kodblocket körs för varje hämtat värde. Därefter hämtas nästa värde. break kan avsluta loopen tidigare.

Skapa en for-loop i Python
Syntaxen för att skapa en for-loop i Python ser ut såhär:
for i in range(värde):
operation/operationer
For-loopen deklarerar vi enkelt genom det reserverade ordet for. För att skapa en for-loop i dess enklastte form, anger man hur många gånger man vill att loopen ska upprepa sig själv. Det kan man göra med kommandot: in range(värde).
Detta innebär att loopen kommer upprepa sig själv ett specifikt antal gånger. Värdet på i börjar på 0 och ökar med 1 varje loop tills dess att den kommer upp till det angivna värdet. Se exempel nedan.
Exempel: For-loopen i Python
Vi ska se ett enkelt exempel på hur vi kan använda for-loopen för att utföra en operation ett givet antal gånger.
for i in range(5): # Värdena 0 till och med 4
print(i)
I detta exempel kommer for-loopen upprepa sig själv 5 gånger, eftersom det är det värdet som är angivet i range(). Det smidiga med for-loopen är att värdet på variabeln i, automatiskt ökar efter varje iteration. Utskriften i detta fall blir alltså:
0
1
2
3
4
Vi har alltså på ett enkelt och kompakt sätt skrivit ett program som skriver ut ett värde 5 gånger med hjälp av en loop, vilket är betydligt lättare än att skriva print fem gånger (även om resultatet skulle bli det samma). Men tänk om du skulle vilja skriva ut ett värde 100 gånger? Eller 1000?
Några saker att tänka på:
- Observera att räknaren
ibörjar på 0. - Ange ett kolon
:för att ange att for-loopen startar. - Allting som är indenterat (indraget) under for-loopen kommer upprepas.
- Där indenteringen slutar, avslutar även for-loopen
Nästlade Loopar
Nästlade loopar innebär att en loop finns inuti en annan loop. Exempel:
for i in range(3):
for j in range(3):
print(f'i: {i}, j: {j}')
Vad tror du utskriften blir i detta fall?
Svar:
i: 0, j: 0
i: 0, j: 1
i: 0, j: 2
i: 1, j: 0
i: 1, j: 1
i: 1, j: 2
i: 2, j: 0
i: 2, j: 1
i: 2, j: 2
Båda looparna går från 0 till 2 (observera att man börjar räkna från 0). Den inre loopen kommer först köra tre gånger varpå detta upprepas tre gånger (yttre loopen).
Avsluta och fortsätt en loop i Python
För att avsluta, respektive fortsätta en loop i Python, kan man använda sig av break och continue och på så sätt kontrollera loopens flöde.
break: Avslutar loopen.continue: Hoppar över resten av loopen och fortsätter med nästa iteration.
Exempel: Vad blir utskriften av följande kod?
for i in range(5):
if i == 2:
continue
print(i)
Svar:
0
1
3
4
Kodordet continue bryter pågående iteration av loopen och fortsätter på nästa. I ovanstående fall kommer loopen alltså inte göra någon utskrift när variabeln i är lika med 2.
Iterering över listor
Det går även att enkelt loopa igenom listor i Python. Mer om listor i Listor i Python!
for item in ['a', 'b', 'c']:
print(item)
Vilket helt enkelt skriver ut:
a
b
c
I detta fall är item inte en räknare som ökar, utan helt enkelt värdet i listan.
Vanliga Misstag
- Glömma att indentera koden korrekt.
- Använda fel variabelnamn i loopen.
Sammanfattning
For-loopen är ett effektivt sätt att upprepa en kodsekvens ett specifikt antal gånger. Vi har visat hur man kan använda nästlade for-loopar samt hur vi kan kontrollera dessa med continue och break.
Vanliga frågor och svar om for-loopen i Python
Använd syntaxen for variabel in range(antal_iterationer): följt av indenterad kod som ska upprepas.
Ja, for-loopen kan iterera över olika typer av samlingar som tuples, strängar och dictionaries.
Använd break för att avsluta loopen tidigt och continue för att hoppa över resten av den aktuella iterationen och fortsätta med nästa.