Pythons stundslinga kan vara förvirrande för nybörjare. Men när du förstår begreppet looping skulle du inse att "medan" före Python "loop" bara är ett tillståndsförklaring.
Låt oss ta en titt på Pythons medan loop och hur du kan använda den för att lösa programmeringsproblem.
Var kan du använda en stundslinga?
Ett särskilt tillstånd följer a medan slinga. Det avgör vad som händer inom slingan. Medan detta tillstånd kvarstår Sann, uttrycken inom slingan fortsätter att köra.
I allmänhet kommer looping att tänka på när du behöver arbeta igenom varje element i en lista eller en array i programmering. A medan loop fortsätter också att köra tills ett uttalande inom loop stoppar det.
Relaterad: Hur funkar Loop i datorprogrammering
Slingor är en av de första kontrolltyperna du lär dig i programmering. Du vet förmodligen om och för öglor, men vad åstadkommer en medan-ögla?
Ett bra exempel skulle vara en inspektionsaktivitet för att identifiera sjuka djur i en hjord får. Du kan tillskriva detta till
medan slinga genom att ställa in temperaturgränsen till 37 grader. Alla värden över detta betyder att ett får är sjuk.Att göra detta uttalande i en medan slinga kan du säga: "medan ett fårs temperatur är över 37 grader, skriv ut ohälsosamt."
Som förväntat, det medan uttalande skriver ut resultatet "ohälsosamt" kontinuerligt så länge det inställda tillståndet kvarstår Sann.
Hur man använder Python While Loops- i praktiken
Som tidigare nämnts går en stundslinga på obestämd tid om det inte finns några fastställda villkor som stoppar den. Här är ett exempel på obestämd tid medan slinga:
medan 3 <5:
skriva ut ("Det är mindre än 5")
Villkoret för medan slinga i koden ovan är 3 < 5.
Låt oss nu titta på medan loopkod för besättningsexempel från föregående avsnitt:
StdTemperature = 37
får_temp = 38
medan får_temp> StdTemperatur:
tryck ("ohälsosamt")
annan:
tryck ("friska")
I kodavsnittet ovan är temperaturgränsen 37. De får_temp variabel lagrar varje fårs temperatur. De medan loop fortsätter att skriva ut "ohälsosamt" så länge temperaturen är över 37; detta är villkoret för att utföra slingan i detta fall. Om du byter får_temp till ett värde mindre än 37, kör det annan påstående.
Med hjälp av en medan loop för att lösa problemet ovan är för primitivt och oskalbart. Det beror på att du måste ändra värdet på får_temp variabel varje gång du behöver testa ett får. Det betyder att det är svårt att använda den på en matris. Lösningen på det ligger utanför denna artikel.
Trots detta borde exemplet ge dig lite insikt om vad en medan uttalande görs i en Python-loop.
För att förhindra att koden körs kontinuerligt kan du införa en ha sönder uttalande i exempelkoden så här:
StdTemperature = 37
får_temp = 38
medan får_temp> StdTemperatur:
tryck ("ohälsosamt")
ha sönder
annan:
tryck ("friska")
Låt oss se ett annat användningsfall av a medan loop genom att skapa en lista med siffrorna mellan 1 och 10:
a = 11
b = 1
medan b a - = 1
skriva ut (a)
Kodblocket ovan räknas från nummer 10 ner till 1. Du kan lika gärna tolka påståendet så här: "medan man är mindre än elva, fortsätt att subtrahera en från vilken som helst föregående nummer och ge resultatet som nästa räkning. "Det fungerar genom att ta bort ett från ett tidigare nummer varje gång det körs medan instruktion.
Du kan också ändra medan loop ovan för att multiplicera varje utgång med 2:
a = 11
b = 1
medan b a - = 1
skriva ut (a, "x", "2", "=", a * 2)
Du kan använda ett booleskt uttryck med en medan loop också. Ta en titt på kodavsnittet nedan för att se hur detta fungerar:
a = 10
b = 2
medan b <10:
b + = 1
tryck (b)
om b == 8:
skriva ut (a)
ha sönder
Koden ovan ger en utgång som räknar vartannat heltal från 3 till 10 utan att inkludera siffran 9. De ha sönder uttryck säkerställer att slingan slutar räkna när den når 10. För att förstå dess relevans kan du ta bort ha sönder uttalande för att se hur det kommer igenom.
Men istället för att använda en ha sönder, kan du använda Fortsätta uttryck för att få samma resultat. För att förstå hur det fungerar, försök att jämföra kodavsnittet ovan med det nedanstående:
a = 10
b = 2
medan b <10:
b + = 1
om b == 9:
Fortsätta
tryck (b)
Istället för att kontrollera utgången med en ha sönder, instruerar koden ovan ditt program att Fortsätta räkningen utan att överväga 9.
Du kan också ändra stundslingan ovan för att mata ut alla jämna siffror mellan 1 och 10:
a = 10
b = 1
medan b <= 10:
b + = 1
om b% 2 == 0:
tryck (b)
Notera: Om du inte vill köra dessa exempel med Pythons inbyggda IDLE kan du använd Jupyter Notebook också, men du måste skapa och aktivera en virtuell Python-miljö att använda det alternativet.
Har en stundslinga begränsningar i praktiken?
Medan det löser särskilda problem i verkliga händelser, a medan loop i Python har vissa begränsningar när man hanterar en samling arrayer.
I praktiken, till skillnad från för loop, a medan loop erbjuder inte specificitet i ett kontrollflödesuttalande. Men en medan loop har dess applikationer också, så det är nödvändigt att ha en förståelse för hur man använder den i dina program.
Vi förklarar en viktig grund för återanvändning av kod i Python: moduler.
- Programmering
- Programmering
- Pytonorm
Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han är uttråkad, men han älskar också att bryta sig från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Ett steg till…!
Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.