While-loopen i Python
Nyckelord: While-loopen

I Python, använder man while-loopen när man vill att en kodsekvens ska upprepa sig själv så länge ett villkor är uppfyllt.
Vad är en while-loop?
I programmering kan det ibland vara nödvändigt att upprepa ett block av kod flera gånger. Istället för att skriva samma kod om och om igen kan vi använda en loop, som automatiskt kör koden så länge ett specifikt villkor är uppfyllt. En av de vanligaste typerna av loopar i Python är while-loopen.
En while-loop används för att iterera (upprepa) en del av programmet ett godtyckligt antal gånger, baserat på ett villkor som utvärderas innan varje iteration. Detta innebär att så länge villkoret är sant, kommer koden inom loopen att fortsätta köras. När villkoret inte längre är uppfyllt, avslutas loopen och programmet fortsätter med nästa del av koden.
While-loopen använder man för att iterera (upprepa) en del av programmet ett godtyckligt antal gånger!
While-loopen är särskilt användbar när antalet iterationer inte är förutbestämt, det vill säga när du inte i förväg vet hur många gånger en viss kodblock behöver upprepas. Detta gör while-loopen idealisk i situationer där du vill fortsätta köra ett visst kodblock tills ett specifikt tillstånd eller värde uppnås.
Generellt sett kan du tänka på en while-loop som en mekanism för att repetera en eller flera sekvenser av operationer så länge ett eller flera villkor är sanna. Det är ett kraftfullt verktyg för att hantera upprepningar och kan användas för att effektivisera din kod och minska risken för fel.
Hur fungerar while-loopen i Python?
Med hjälp av ett flödesschema kan vi på ett enkelt sätt förstå hur while-loopen fungerar i Python.

- While-loopen börjar med att kolla om ett villkor är uppfyllt (
True). - While–loopen exekveras (kör) alltid, så länge villkoret är
True. - Varje gång loopen kör, utför programmet en rad operationer och återgår (loop) sedan till villkoret.
- Är villkoret fortfarande uppfyllt efter att operationerna har körts, så utförs loopen en gång till.
- Detta fortsätter tills dess att villkoret inte längre är uppfyllt (
False). - Programmet går då vidare som vanligt efter att while-loopen är klar.
Skapa en while-loop i Python
I Python, skapar man en while-loop med följande syntax:
while villkor:
operation/operationer
Hur skapar man en while-loop?
- En while-loop skapar man med det reserverade ordet
while. - Man anger alltid ett villkor* till while-loopen som kan svaras med antingen
TrueellerFalse. - All kod som är indenterad (indragen) efter while-kommandot kommer att utföras om villkoret är
True
*Tips: om du behöver en repetition på hur man skapar jämförelse- och logiska operationer, så finns en genomgång i avsnittet Jämförelse- och Logiska operatorer i Python.
Exempel: Hur gör man en while-loop i Python
Vi ska se ett enkelt exempel på hur vi kan använda while-loopen för att utföra operation medans villkoret är uppfyllt.
i = 0 # Deklarerar variabeln i till värdet 0
while i < 5: # Utför while-loopen så länge som variabeln i är mindre än 5
print(i) # Skriv ut värdet på i
i = i + 1 # Addera 1 till variabeln i
I det här exemplet skriver man ut värdet på variabeln i så länge villkoret är uppfyllt, det vill säga så länge som i är mindre än 5. Programmet kommer alltså skriva ut värdet på i fem gånger och sen avsluta while-loopen. Alltså blir utskriften i detta fall:
0
1
2
3
4
Notera, vad hade hänt om inte i = i + 1 hade funnits i loopen? Just det, eftersom villkoret alltid kommer vara uppfyllt (noll är alltid mindre än fem) så kommer while-loopen aldrig att avslutas. Då har vi råkat göra en så kallad evighetsloop, vilket innebär att programmet aldrig kommer aldrig sluta! Detta är givetvis inte bra, så när du programmerar loopar, var då säker på att se till att loopen avslutas.
Vad är en evighetsloop i Python?
En evighetsloop i Python är som det låter (en loop som körs för evigt), alltså tills programmet avslutas manuellt eller ett avbrott inträffar. Detta gör man genom att använda en villkorssats som alltid är sann, exempelvis while True: eller while 1:.
while True:
print("Utskriften upprepas om och om igen!")
Varför använder man en evighetsloop när man programmerar?
Att använda en evighetsloop kan vara användbart för att upprepa en del av koden kontinuerligt, t.ex. för att lyssna på en användares inmatning eller för att utföra en uppgift i bakgrunden. Detta kan dock också leda till oönskad resursanvändning och kan potentiellt orsaka programkrascher om man inte hanterar den på rätt sätt.
För att undvika problem med evighetsloopar i Python är det viktigt att inkludera en utväg för att bryta loopen manuellt eller genom att använda en avbrottssignal. Det är också viktigt att övervaka programmet noggrant och se till att man använder resurserna effektivt.
Tre exempel på hur man bryter en evighetsloop i Python:
- Med kommandot
break - Med en variabel som bryter villkoret till loopen
- Avbryta programmet manuellt.
Exempel: bryta en evighetsloop med kommandot break
Med kommandot break avbryta en loop. Nedan visar vi hur du kan avbryta en evighetsloop med break:
while True:
print("Utskriften upprepas om och om igen!")
val = input("Vill du köra programmet igen? Om ja, skriv ja om nej skriv nej: ")
if val == "nej":
break
Ovanstående kod kommer fråga användaren om man vill avbryta programmet. Svarar man nej så kommer kommandot break anropas vilket avslutar loopen.
Exempel: Bryta villkoret med en variabel
Nedan visar vi ett exempel på hur man kan bryta en loop genom att ändra villkoret för while-loopen.
running = True
while running:
print("Utskriften upprepas om och om igen!")
val = input("Vill du köra programmet igen? Om ja, skriv ja om nej skriv nej: ")
if val == "nej":
running = False
Ovanstående kod kommer upprepa koden tills dess att användaren svarar nej. Då uppdaterar man variabeln running till False vilket kommer avsluta loopen (eftersom villkorssatsen till loopen då inte längre är uppfylld).
Avbryta koden manuellt
Om man har råkat fastna i en evighetsloop så går det såklart att bryta programmet manuellt. I många kodredigerare som visual studio code så finns det ofta en stoppknapp för att avbryta kommandot. Om man kör programmet från terminalen kan man ofta avbryta programmet med ctrl + c.
Vanliga frågor och svar: While-loopen i Python
En while-loop är en block av kod som upprepar en kodsekvens om och om igen så länge som ett villkor är uppfyllt.
En evighetsloop är en loop som upprepar en kodsekvens om och om igen för alltid tills dess att man aktivt bryter den. En evighetsloop passar bra när man inte vet hur många gånger man vill att ett program ska köra.
I Python kan man avbryta en loop med kommandot break vilket avslutar loopen och fortsätter programmet utanför loopen.