Python Herhalingslus wordt gebruikt om een blok instructies herhaaldelijk uit te voeren totdat aan een bepaalde voorwaarde is voldaan. Wanneer de voorwaarde onwaar wordt, wordt de regel onmiddellijk na de lus in het programma uitgevoerd.
Syntaxis van while-lus in Python
while expression: statement(s)>
Stroomdiagram van Python While Loop

While loop valt onder de categorie van onbepaalde iteratie . Onbepaalde iteratie betekent dat het aantal keren dat de lus wordt uitgevoerd niet vooraf expliciet is gespecificeerd.
Verklaringen vertegenwoordigen alle verklaringen die zijn ingesprongen met hetzelfde aantal tekenruimten nadat een programmeerconstructie wordt beschouwd als onderdeel van een enkel codeblok. Python gebruikt inspringen als methode voor het groeperen van instructies. Wanneer een while-lus wordt uitgevoerd, wordt expr eerst geëvalueerd in een Booleaanse context en als deze waar is, wordt de lusbody uitgevoerd. Vervolgens wordt de expr opnieuw gecontroleerd, als deze nog steeds waar is, wordt de body opnieuw uitgevoerd en dit gaat door totdat de expressie onwaar wordt.
Verschil tussen Python voor lus en Python While Loop
Het belangrijkste verschil tussen Python For Loop versus Python While Loop is dat Python for loop meestal wordt gebruikt als het aantal iteraties gelijk is bekend , terwijl Python while-lus wordt gebruikt als het aantal iteraties gelijk is onbekend
Python While-lus
In dit voorbeeld is de voorwaarde voor while True zolang de tellervariabele (aantal) kleiner is dan 3.
Python
# Python program to illustrate> # while loop> count> => 0> while> (count <> 3> ):> > count> => count> +> 1> > print> (> 'Hello Geek'> )> |
>
>Uitvoer
Hello Geek Hello Geek Hello Geek>
Oneindige while-lus in Python
Hier is de waarde van de voorwaarde altijd True. Daarom wordt de hoofdtekst van de lus oneindig vaak uitgevoerd totdat het geheugen vol is.
Python
age> => 28> > # the test condition is always True> while> age>> 19> :> > print> (> 'Infinite Loop'> )> |
>
>
Controleverklaringen in Python met voorbeelden
Loop control-instructies veranderen de uitvoering van hun normale volgorde. Wanneer de uitvoering een bereik verlaat, worden alle automatische objecten die binnen dat bereik zijn gemaakt vernietigd. Python ondersteunt de volgende controle-instructies.
Python while-lus met continue-instructie
Python Ga door met verklaring brengt de besturing terug naar het begin van de lus.
Python
# Prints all letters except 'e' and 's'> i> => 0> a> => 'geeksforgeeks'> > while> i <> len> (a):> > if> a[i]> => => 'e'> or> a[i]> => => 's'> :> > i> +> => 1> > continue> > > print> (> 'Current Letter :'> , a[i])> > i> +> => 1> |
>
>Uitvoer
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>
Python while-lus met een break-instructie
Python Break-verklaring haalt de controle uit de lus.
Python
# break the loop as soon it sees 'e'> # or 's'> i> => 0> a> => 'geeksforgeeks'> > while> i <> len> (a):> > if> a[i]> => => 'e'> or> a[i]> => => 's'> :> > i> +> => 1> > break> > > print> (> 'Current Letter :'> , a[i])> > i> +> => 1> |
>
>Uitvoer
Current Letter : g>
Python while-lus met een pass-instructie
De Python pass-instructie om lege lussen te schrijven. Pass wordt ook gebruikt voor lege controle-instructies, functies en klassen.
Python
wanneer kwam windows 7 uit
# An empty loop> a> => 'geeksforgeeks'> i> => 0> > while> i <> len> (a):> > i> +> => 1> > pass> > print> (> 'Value of i :'> , i)> |
>
>Uitvoer
Value of i : 13>
Terwijl lus met anders
Zoals hierboven besproken, voert while loop het blok uit totdat aan een voorwaarde is voldaan. Wanneer de voorwaarde onwaar wordt, wordt de instructie onmiddellijk na de lus uitgevoerd. De else-clausule wordt alleen uitgevoerd als uw while-voorwaarde onwaar wordt. Als u uit de lus komt of als er een uitzondering optreedt, wordt deze niet uitgevoerd.
Opmerking: Het else-blok vlak na for/while wordt alleen uitgevoerd als de lus NIET wordt beëindigd door een break-instructie.
Python
# Python program to demonstrate> # while-else loop> > i> => 0> while> i <> 4> :> > i> +> => 1> > print> (i)> else> :> # Executed because no break in for> > print> (> 'No Break
'> )> > i> => 0> while> i <> 4> :> > i> +> => 1> > print> (i)> > break> else> :> # Not executed as there is a break> > print> (> 'No Break'> )> |
>
>Uitvoer
1 2 3 4 No Break 1>
Sentinel-gecontroleerde verklaring
Hierin gebruiken we geen enkele tegenvariabele omdat we niet weten hoe vaak de lus zal worden uitgevoerd. Hier bepaalt de gebruiker hoe vaak hij de lus wil uitvoeren. Hiervoor hanteren wij een schildwachtwaarde. Een schildwachtwaarde is een waarde die wordt gebruikt om een lus te beëindigen wanneer een gebruiker deze binnengaat. Over het algemeen is de schildwachtwaarde -1.
Python while-lus met gebruikersinvoer
Hier wordt de gebruiker eerst gevraagd een getal in te voeren. als de gebruiker -1 invoert, wordt de lus niet uitgevoerd, d.w.z.
- De gebruiker voert 6 in en het lichaam van de lus wordt uitgevoerd en vraagt opnieuw om invoer
- Hier kan de gebruiker vele malen invoeren totdat hij -1 invoert om de lus te stoppen
- De gebruiker kan zelf bepalen hoe vaak hij invoer wil invoeren
Python
a> => int> (> input> (> 'Enter a number (-1 to quit): '> ))> > while> a !> => -> 1> :> > a> => int> (> input> (> 'Enter a number (-1 to quit): '> ))> |
>
>
Uitgang:

Uitvoerschermafbeelding
While-lus met Booleaanse waarden
Een veelgebruikt gebruik van Booleaanse waarden in while-lussen is het creëren van een oneindige lus die alleen kan worden verlaten op basis van een bepaalde voorwaarde binnen de lus.
Voorbeeld :
In dit voorbeeld initialiseren we een teller en gebruiken we vervolgens een oneindige while-lus (True is altijd waar) om de teller te verhogen en de waarde ervan af te drukken. We controleren of de teller een bepaalde waarde heeft bereikt en zo ja, dan verlaten we de lus met behulp van het break-statement.
Python
# Initialize a counter> count> => 0> > # Loop infinitely> while> True> :> > # Increment the counter> > count> +> => 1> > print> (f> 'Count is {count}'> )> > > # Check if the counter has reached a certain value> > if> count> => => 10> :> > # If so, exit the loop> > break> > # This will be executed after the loop exits> print> (> 'The loop has ended.'> )> |
>
tekenreeksarray
>Uitvoer
Count is 1 Count is 2 Count is 3 Count is 4 Count is 5 Count is 6 Count is 7 Count is 8 Count is 9 Count is 10 The loop has ended.>
Python while-lus met Python-lijst
In dit voorbeeld hebben we een while-lus over een lijst uitgevoerd, die blijft lopen totdat er een element in de lijst aanwezig is.
Python
# checks if list still> # contains any element> a> => [> 1> ,> 2> ,> 3> ,> 4> ]> > while> a:> > print> (a.pop())> |
>
>Uitvoer
4 3 2 1>
Enkele instructie while block
Als het while-blok uit één enkele instructie bestaat, kunnen we, net als het if-blok, de hele lus op één regel declareren. Als er meerdere instructies in het blok staan waaruit de hoofdtekst van de lus bestaat, kunnen deze worden gescheiden door puntkomma's (;).
Python
# Python program to illustrate> # Single statement while block> count> => 0> while> (count <> 5> ):> > count> +> => 1> > print> (> 'Hello Geek'> )> |
>
>Uitvoer
Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>
Python While Loop-oefeningsvragen
Hieronder staan twee oefenvragen over Python while loop. We hebben 2 belangrijke oefenvragen behandeld, gebaseerd op het stuiterbalprogramma en het aftelprogramma.
Q1. While loop-oefeningsvraag gebaseerd op het probleem met de stuiterende bal
Python
initial_height> => 10> bounce_factor> => 0.5> height> => initial_height> while> height>> 0.1> :> > print> (> 'The ball is at a height of'> , height,> 'meters.'> )> > height> *> => bounce_factor> print> (> 'The ball has stopped bouncing.'> )> |
>
>
Uitvoer
The ball is at a height of 10 meters. The ball is at a height of 5.0 meters. The ball is at a height of 2.5 meters. The ball is at a height of 1.25 meters. The ball is at a height of 0.625 meters. The ball is at a height of 0.3125 meters. The ball is at a height of 0.15625 meters. The ball has stopped bouncing.>
Vraag 2. Eenvoudige while-loop-oefeningscode om een aftelklok te bouwen
Python
countdown> => 10> while> countdown>> 0> :> > print> (countdown)> > countdown> -> => 1> print> (> 'Blast off!'> )> |
>
>
Uitvoer
10 9 8 7 6 5 4 3 2 1 Blast off!>