Python Kamēr Loop tiek izmantots, lai atkārtoti izpildītu paziņojumu bloku, līdz tiek izpildīts noteiktais nosacījums. Kad nosacījums kļūst nepatiess, tiek izpildīta rinda tūlīt pēc cilpas programmā.
Ciklas while sintakse programmā Python
while expression: statement(s)>
Python, kamēr cilpa, blokshēma
Kamēr cilpa ietilpst kategorijā nenoteikta iterācija . Nenoteikta iterācija nozīmē, ka cilpas izpildes reižu skaits nav skaidri norādīts iepriekš.
Paziņojumi ir visi priekšraksti, kas atkāpjas ar tādu pašu rakstzīmju atstarpju skaitu pēc tam, kad programmēšanas konstrukcija tiek uzskatīta par viena koda bloka daļu. Python izmanto atkāpi kā paziņojumu grupēšanas metodi. Kad tiek izpildīta cilpa while, expr vispirms tiek novērtēts Būla kontekstā un, ja tā ir patiesa, tiek izpildīts cilpas pamatteksts. Pēc tam izteiksme tiek pārbaudīta vēlreiz, ja tā joprojām ir patiesa, tad ķermenis tiek izpildīts vēlreiz, un tas turpinās, līdz izteiksme kļūst nepatiesa.
Atšķirība starp Python For Loop un Python While Loop
Galvenā atšķirība starp Python For Loop un Python While Loop ir tā, ka Python for loop parasti tiek izmantots, ja iterāciju skaits ir zināms , savukārt Python while cilpa tiek izmantota, ja atkārtojumu skaits ir nezināms
Python While Loop
Šajā piemērā nosacījums while būs True, kamēr skaitītāja mainīgais (skaits) ir mazāks par 3.
Python
# Python program to illustrate> # while loop> count>=> 0> while> (count <>3>):> >count>=> count>+> 1> >print>(>'Hello Geek'>)> |
>
>Izvade
alfabēta skaitļi
Hello Geek Hello Geek Hello Geek>
Infinite while Loop programmā Python
Šeit nosacījuma vērtība vienmēr ir True. Tāpēc cilpas korpuss tiek palaists bezgalīgas reizes, līdz atmiņa ir pilna.
Python
age>=> 28> > # the test condition is always True> while> age>>> >print>(>'Infinite Loop'>)> |
>
>
Vadības paziņojumi Python ar piemēriem
Cilpas vadības paziņojumi maina izpildi no to parastās secības. Kad izpilde atstāj tvērumu, visi automātiskie objekti, kas tika izveidoti šajā tvērumā, tiek iznīcināti. Python atbalsta šādus vadības paziņojumus.
Python while cilpa ar paziņojumu turpināt
Python Turpināt paziņojumu atgriež vadīklu cilpas sākumā.
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> |
>
>Izvade
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>
Python while cilpa ar pārtraukuma paziņojumu
Python Pārtraukuma paziņojums izved kontroli ārpus aprites.
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> |
>
>Izvade
Current Letter : g>
Python while cilpa ar apstiprinājuma paziņojumu
Python pass paziņojums, lai rakstītu tukšas cilpas. Pass tiek izmantots arī tukšiem vadības priekšrakstiem, funkcijām un klasēm.
aes vs des
Python
# An empty loop> a>=> 'geeksforgeeks'> i>=> 0> > while> i <>len>(a):> >i>+>=> 1> >pass> > print>(>'Value of i :'>, i)> |
>
>Izvade
Value of i : 13>
Kamēr cilpa ar citu
Kā minēts iepriekš, kamēr cilpa izpilda bloku, līdz tiek izpildīts nosacījums. Kad nosacījums kļūst nepatiess, paziņojums tūlīt pēc cilpas tiek izpildīts. Cita klauzula tiek izpildīta tikai tad, ja jūsu kamēr nosacījums kļūst nepatiess. Ja izkļūsit no cilpas vai ja izņēmums tiek paaugstināts, tas netiks izpildīts.
Piezīme: Bloks else tieši pēc for/while tiek izpildīts tikai tad, ja cilpa NAV beidzas ar pārtraukuma paziņojumu.
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'>)> |
>
>Izvade
1 2 3 4 No Break 1>
Sentinel kontrolēts paziņojums
Šajā gadījumā mēs neizmantojam nevienu skaitītāja mainīgo, jo mēs nezinām, cik reižu cilpa tiks izpildīta. Šeit lietotājs izlemj, cik reizes viņš vēlas izpildīt cilpu. Šim nolūkam mēs izmantojam sargvērtību. Sargvērtība ir vērtība, ko izmanto, lai pārtrauktu cilpu ikreiz, kad lietotājs tajā ievada, parasti kontrolvērtība ir -1.
Python kamēr cilpa ar lietotāja ievadi
Šeit tas vispirms lūdz lietotājam ievadīt numuru. ja lietotājs ievada -1, tad cilpa netiks izpildīta, t.i.
- Lietotājs ievada 6, un cilpas pamatteksts tiek izpildīts un atkal prasa ievadi
- Šeit lietotājs var ievadīt vairākas reizes, līdz viņš ievada -1, lai apturētu cilpu
- Lietotājs var izlemt, cik reižu viņš vēlas ievadīt ievadi
Python
json failu
a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> > while> a !>=> ->1>:> >a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> |
>
>
Izvade:

Izvades ekrāna attēls
Kaut arī cilpa ar Būla vērtībām
Viens izplatīts Būla vērtību lietojums while cilpās ir bezgalīgas cilpas izveidošana, no kuras var iziet tikai, pamatojoties uz kādu cilpas nosacījumu.
burbuļu šķirošanas pitons
Piemērs :
Šajā piemērā mēs inicializējam skaitītāju un pēc tam izmantojam bezgalīgu while cilpu (True vienmēr ir taisnība), lai palielinātu skaitītāju un izdrukātu tā vērtību. Mēs pārbaudām, vai skaitītājs ir sasniedzis noteiktu vērtību, un, ja tā, mēs izejam no cilpas, izmantojot pārtraukuma paziņojumu.
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.'>)> |
>
>Izvade
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 kamēr cilpa ar Python sarakstu
Šajā piemērā mēs esam palaiduši kamēr cilpu pār sarakstu, kas darbosies, līdz sarakstā būs kāds elements.
Python
# checks if list still> # contains any element> a>=> [>1>,>2>,>3>,>4>]> > while> a:> >print>(a.pop())> |
>
>Izvade
4 3 2 1>
Viens paziņojums bloķēšanas laikā
Tāpat kā if bloks, ja bloks while sastāv no viena priekšraksta, mēs varam deklarēt visu cilpu vienā rindā. Ja blokā, kas veido cilpas pamattekstu, ir vairāki priekšraksti, tos var atdalīt ar semikolu (;).
Python
# Python program to illustrate> # Single statement while block> count>=> 0> while> (count <>5>):> >count>+>=> 1> >print>(>'Hello Geek'>)> |
>
>Izvade
Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>
Python While Loop vingrinājumu jautājumi
Zemāk ir divi vingrinājumu jautājumi par Python while cilpu. Mēs esam apskatījuši 2 svarīgus vingrinājumu jautājumus, pamatojoties uz atlēkušās bumbas programmu un atpakaļskaitīšanas programmu.
Q1. Cilpas vingrinājuma jautājums, pamatojoties uz atlekšanas bumbas problēmu
Python
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.'>)> |
>
>
Izvade
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. Vienkāršs kamēr cilpas vingrinājuma kods, lai izveidotu atpakaļskaitīšanas pulksteni
Python
dfa piemēri
countdown>=> 10> while> countdown>>> >print>(countdown)> >countdown>->=> 1> print>(>'Blast off!'>)> |
>
>
Izvade
10 9 8 7 6 5 4 3 2 1 Blast off!>