Python Kým slučka sa používa na opakované vykonávanie bloku príkazov, kým nie je splnená daná podmienka. Keď sa podmienka stane nepravdivou, vykoná sa riadok bezprostredne po slučke v programe.
Syntax cyklu while v Pythone
while expression: statement(s)>
Vývojový diagram Python While Loop
Kým slučka patrí do kategórie neurčité opakovanie . Neurčité opakovanie znamená, že počet spustení cyklu nie je vopred explicitne špecifikovaný.
Príkazy predstavujú všetky príkazy odsadené rovnakým počtom znakových medzier po tom, čo sa programový konštrukt považuje za súčasť jedného bloku kódu. Python používa odsadenie ako metódu zoskupovania príkazov. Keď sa vykoná cyklus while, výraz sa najskôr vyhodnotí v booleovskom kontexte a ak je pravdivý, vykoná sa telo cyklu. Potom sa výraz znova skontroluje, ak je stále pravdivý, telo sa vykoná znova a pokračuje, kým sa výraz nestane nepravdivým.
Rozdiel medzi Python pre slučku a Python While Loop
Hlavný rozdiel medzi Python For Loop a Python While Loop je ten, že Python for loop sa zvyčajne používa, keď je počet iterácií známy , zatiaľ čo slučka Python while sa používa, keď je počet iterácií neznámy
Python While Loop
V tomto príklade bude podmienka pre while pravdivá, pokiaľ je premenná počítadla (count) menšia ako 3.
Python
# Python program to illustrate> # while loop> count>=> 0> while> (count <>3>):> >count>=> count>+> 1> >print>(>'Hello Geek'>)> |
>
Java hlavná metóda
>Výkon
Hello Geek Hello Geek Hello Geek>
Infinite while Loop v Pythone
Tu je hodnota podmienky vždy True. Preto sa telo cyklu spúšťa nekonečne krát, kým sa pamäť nezaplní.
Python
age>=> 28> > # the test condition is always True> while> age>>19>:> >print>(>'Infinite Loop'>)> |
>
>
Riadiace príkazy v Pythone s príkladmi
Príkazy riadenia slučky menia vykonávanie z ich normálnej postupnosti. Keď spustenie opustí rozsah, všetky automatické objekty, ktoré boli vytvorené v tomto rozsahu, sa zničia. Python podporuje nasledujúce ovládacie príkazy.
Cyklus while v Pythone s príkazom continue
Python Pokračovať vo vyhlásení vráti ovládací prvok na začiatok cyklu.
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> |
>
>Výkon
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>
Cyklus while v Pythone s príkazom break
Python Vyhlásenie o prerušení prináša kontrolu zo slučky.
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> |
>
>Výkon
Current Letter : g>
Cyklus while v Pythone s príkazom pass
Príkaz Python pass na písanie prázdnych slučiek. Pass sa používa aj pre prázdne riadiace príkazy, funkcie a triedy.
Python
# An empty loop> a>=> 'geeksforgeeks'> i>=> 0> > while> i <>len>(a):> >i>+>=> 1> >pass> > print>(>'Value of i :'>, i)> |
>
>Výkon
Value of i : 13>
Zatiaľ čo slučka s iným
Ako je uvedené vyššie, while cyklus vykonáva blok, kým nie je splnená podmienka. Keď sa podmienka stane nepravdivou, vykoná sa príkaz ihneď po slučke. Klauzula else sa vykoná iba vtedy, keď sa vaša podmienka while stane nepravdivou. Ak sa vymaníte z cyklu alebo ak sa vyvolá výnimka, nevykoná sa.
Poznámka: Blok else hneď po for/while sa vykoná len vtedy, keď cyklus NIE JE ukončený príkazom break.
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'>)> |
>
>Výkon
1 2 3 4 No Break 1>
Kontrolované vyhlásenie Sentinel
V tomto nepoužívame žiadnu premennú počítadla, pretože nevieme, koľkokrát sa cyklus vykoná. Tu sa užívateľ rozhodne, koľkokrát chce cyklus spustiť. Na tento účel používame sentinelovú hodnotu. Kontrolná hodnota je hodnota, ktorá sa používa na ukončenie slučky vždy, keď ju používateľ zadá, vo všeobecnosti je kontrolná hodnota -1.
Python while cyklus s užívateľským vstupom
Tu najprv požiada používateľa o zadanie čísla. ak užívateľ zadá -1 tak sa slučka nevykoná, t.j.
- Používateľ zadá 6 a telo cyklu sa vykoná a znova požiada o vstup
- Tu môže užívateľ zadať mnohokrát, kým nezadá -1, aby sa slučka zastavila
- Užívateľ sa môže rozhodnúť, koľkokrát chce zadať vstup
Python
a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> > while> a !>=> ->1>:> >a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> |
>
>
Výkon:
funkcia python chr

Výstupný obrázok obrazovky
Cyklus while s boolovskými hodnotami
Jedným z bežných použití boolovských hodnôt v slučkách while je vytvorenie nekonečnej slučky, ktorú možno opustiť iba na základe určitej podmienky v rámci slučky.
Príklad :
V tomto príklade inicializujeme počítadlo a potom použijeme nekonečnú slučku while (pravda je vždy pravdivá) na zvýšenie počítadla a vytlačenie jeho hodnoty. Skontrolujeme, či počítadlo dosiahlo určitú hodnotu a ak áno, opustíme cyklus pomocou príkazu break.
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.'>)> |
>
>Výkon
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.>
Cyklus Python while so zoznamom Python
V tomto príklade sme spustili cyklus while nad zoznamom, ktorý bude bežať, kým nebude v zozname prítomný prvok.
Python
# checks if list still> # contains any element> a>=> [>1>,>2>,>3>,>4>]> > while> a:> >print>(a.pop())> |
>
>Výkon
4 3 2 1>
Jediný príkaz pri bloku
Rovnako ako blok if, ak blok while pozostáva z jedného príkazu, môžeme deklarovať celý cyklus v jednom riadku. Ak sa v bloku, ktorý tvorí telo cyklu, nachádza viacero príkazov, môžu byť oddelené bodkočiarkou (;).
Python
# Python program to illustrate> # Single statement while block> count>=> 0> while> (count <>5>):> >count>+>=> 1> >print>(>'Hello Geek'>)> |
>
>Výkon
Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>
Otázky na cvičenie Python počas cyklu
Nižšie sú uvedené dve cvičebné otázky týkajúce sa cyklu Python while. Zaoberali sme sa 2 dôležitými cvičebnými otázkami založenými na programe skákacej lopty a programe odpočítavania.
Q1. Otázka pri cvičení v slučke založená na probléme s skákajúcou loptou
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.'>)> |
>
>
Výkon
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.>
Q2. Jednoduchý kód cvičenia počas cyklu na zostavenie hodín odpočítavania
Python
countdown>=> 10> while> countdown>>0>:> >print>(countdown)> >countdown>->=> 1> print>(>'Blast off!'>)> |
>
>
Výkon
10 9 8 7 6 5 4 3 2 1 Blast off!>