Piton While Loop este folosit pentru a executa un bloc de instrucțiuni în mod repetat până când o anumită condiție este îndeplinită. Când condiția devine falsă, linia imediat după bucla din program este executată.
Sintaxa buclei while în Python
while expression: statement(s)>
Organigrama Python While Loop
While bucla se încadrează în categoria de iterație nedefinită . Iterația nedefinită înseamnă că numărul de ori în care bucla este executată nu este specificat în mod explicit în avans.
Instrucțiunile reprezintă toate instrucțiunile indentate de același număr de spații de caractere după ce un construct de programare este considerat a fi parte dintr-un singur bloc de cod. Python folosește indentarea ca metodă de grupare a instrucțiunilor. Când este executată o buclă while, expr este mai întâi evaluată într-un context boolean și dacă este adevărată, corpul buclei este executat. Apoi expr este verificat din nou, dacă este încă adevărat atunci corpul este executat din nou și aceasta continuă până când expresia devine falsă.
Diferență între Python For Loop și Python While Loop
Principala diferență dintre Python For Loop versus Python While Loop este că Python for bucla este de obicei folosit când numărul de iterații este cunoscut , în timp ce bucla Python while este folosită atunci când numărul de iterații este necunoscut
Python While Loop
În acest exemplu, condiția pentru while va fi adevărată atâta timp cât variabila contor (număr) este mai mică de 3.
Piton
# Python program to illustrate> # while loop> count>=> 0> while> (count <>3>):> >count>=> count>+> 1> >print>(>'Hello Geek'>)> |
>
>Ieșire
Hello Geek Hello Geek Hello Geek>
Buclă while infinită în Python
Aici, valoarea condiției este întotdeauna adevărată. Prin urmare, corpul buclei este rulat de infinite ori până când memoria este plină.
Piton
age>=> 28> > # the test condition is always True> while> age>>>> >print>(>'Infinite Loop'>)> |
>
>
Declarații de control în Python cu exemple
Instrucțiunile de control al buclei modifică execuția din secvența lor normală. Când execuția părăsește un domeniu, toate obiectele automate care au fost create în acel domeniu sunt distruse. Python acceptă următoarele instrucțiuni de control.
Bucla while Python cu instrucțiunea continue
Piton Continuare Declarație readuce controlul la începutul buclei.
Piton
# 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> |
>
>Ieșire
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>
Bucla while Python cu o instrucțiune break
Piton Break Statement scoate controlul din buclă.
Piton
# 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> |
>
>Ieșire
Current Letter : g>
Bucla while Python cu o instrucțiune pass
Instrucțiunea Python pass pentru a scrie bucle goale. Pass este folosit și pentru instrucțiuni de control, funcții și clase goale.
Piton
# An empty loop> a>=> 'geeksforgeeks'> i>=> 0> > while> i <>len>(a):> >i>+>=> 1> >pass> > print>(>'Value of i :'>, i)> |
>
numele orașului din SUA
>Ieșire
Value of i : 13>
While buclă cu else
După cum sa discutat mai sus, bucla while execută blocul până când o condiție este îndeplinită. Când condiția devine falsă, instrucțiunea imediat după buclă este executată. Clauza else este executată numai atunci când condiția dvs. while devine falsă. Dacă ieși din buclă sau dacă se ridică o excepție, aceasta nu va fi executată.
Notă: Blocul else imediat după for/while este executat numai atunci când bucla NU este încheiată printr-o instrucțiune break.
Piton
# 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'>)> |
>
>Ieșire
1 2 3 4 No Break 1>
Declarație controlată de sentinelă
În acest sens, nu folosim nicio variabilă contor pentru că nu știm de câte ori se va executa bucla. Aici utilizatorul decide de câte ori dorește să execute bucla. Pentru aceasta, folosim o valoare sentinelă. O valoare sentinelă este o valoare care este folosită pentru a termina o buclă ori de câte ori un utilizator o introduce, în general, valoarea sentinelă este -1.
Bucla while Python cu intrarea utilizatorului
Aici, mai întâi îi cere utilizatorului să introducă un număr. dacă utilizatorul introduce -1 atunci bucla nu se va executa, adică.
- Utilizatorul introduce 6 și corpul buclei se execută și din nou cere intrare
- Aici utilizatorul poate introduce de multe ori până când introduce -1 pentru a opri bucla
- Utilizatorul poate decide de câte ori dorește să introducă intrare
Piton
a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> > while> a !>=> ->1>:> >a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> |
>
>
Ieșire:

Ieșire imaginea ecranului
Bucla while cu valori booleene
O utilizare comună a valorilor booleene în buclele while este crearea unei bucle infinite care poate fi ieșită numai pe baza unei anumite condiții din buclă.
Exemplu :
În acest exemplu, inițializam un contor și apoi folosim o buclă while infinită (True este întotdeauna adevărat) pentru a incrementa contorul și pentru a-i imprima valoarea. Verificăm dacă contorul a atins o anumită valoare și dacă da, ieșim din buclă folosind instrucțiunea break.
Piton
# 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.'>)> |
>
>Ieșire
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 buclă cu lista Python
În acest exemplu, am rulat o buclă while peste o listă care va rula până când există un element prezent în listă.
Piton
# checks if list still> # contains any element> a>=> [>1>,>2>,>3>,>4>]> > while> a:> >print>(a.pop())> |
>
>Ieșire
4 3 2 1>
Declarație unică while block
La fel ca și blocul if, dacă blocul while constă dintr-o singură instrucțiune, putem declara întreaga buclă într-o singură linie. Dacă există mai multe instrucțiuni în blocul care alcătuiește corpul buclei, acestea pot fi separate prin punct și virgulă (;).
Piton
# Python program to illustrate> # Single statement while block> count>=> 0> while> (count <>5>):> >count>+>=> 1> >print>(>'Hello Geek'>)> |
>
>Ieșire
Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>
Întrebări privind exercițiul Python While Loop
Mai jos sunt două întrebări de exercițiu pe bucla while Python. Am acoperit 2 întrebări importante legate de exerciții bazate pe programul de minge care sări și programul de numărătoare inversă.
Î1. Întrebarea exercițiului în buclă bazată pe problema mingii care sări
Piton
initial_height>=> 10> bounce_factor>=> 0.5> height>=> initial_height> while> height>>>> >print>(>'The ball is at a height of'>, height,>'meters.'>)> >height>*>=> bounce_factor> print>(>'The ball has stopped bouncing.'>)> |
cât de mare este ecranul computerului meu
>
>
Ieșire
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. Cod simplu de exercițiu while-loop pentru a construi ceas cu numărătoare inversă
Piton
countdown>=> 10> while> countdown>>>> >print>(countdown)> >countdown>->=> 1> print>(>'Blast off!'>)> |
>
>
Ieșire
10 9 8 7 6 5 4 3 2 1 Blast off!>