Python Vaikka Loop käytetään lauselohkon suorittamiseen toistuvasti, kunnes tietty ehto täyttyy. Kun ehdosta tulee epätosi, välittömästi ohjelman silmukan jälkeinen rivi suoritetaan.
While-silmukan syntaksi Pythonissa
while expression: statement(s)>
Python While Loop -vuokaavio
Vaikka silmukka kuuluu luokkaan määrittelemätön iteraatio . Epämääräinen iteraatio tarkoittaa, että silmukan suorituskertojen määrää ei ole erikseen määritelty etukäteen.
Lausekkeet edustavat kaikkia lauseita, jotka on sisennetty samalla määrällä merkkiväliä sen jälkeen, kun ohjelmointikonstruktin katsotaan olevan osa yhtä koodilohkoa. Python käyttää sisennystä lauseiden ryhmittelytapana. Kun while-silmukka suoritetaan, expr arvioidaan ensin Boolen kontekstissa ja jos se on tosi, silmukan runko suoritetaan. Sitten lauseke tarkistetaan uudelleen, jos se on edelleen tosi, suoritetaan runko uudelleen ja tätä jatketaan, kunnes lausekkeesta tulee epätosi.
Ero välillä Python For Loop ja Python While Loop
Suurin ero Python For Loopin ja Python While Loopin välillä on se, että Python for loop -ohjelmaa käytetään yleensä, kun iteraatioiden määrä on tiedossa , kun taas Python while -silmukkaa käytetään, kun iteraatioiden määrä on tuntematon
Python While Loop
Tässä esimerkissä while-ehto on True niin kauan kuin laskurimuuttuja (count) on pienempi kuin 3.
Python
java ohjelma
# Python program to illustrate> # while loop> count>=> 0> while> (count <>3>):> >count>=> count>+> 1> >print>(>'Hello Geek'>)> |
>
>Lähtö
Hello Geek Hello Geek Hello Geek>
Infinite while Loop Pythonissa
Tässä ehdon arvo on aina True. Siksi silmukan runkoa ajetaan äärettömästi, kunnes muisti on täynnä.
Python
age>=> 28> > # the test condition is always True> while> age>>> >print>(>'Infinite Loop'>)> |
>
>
Ohjauslausekkeet Pythonissa esimerkein
Silmukan ohjauskäskyt muuttavat suoritusta normaalista järjestyksestään. Kun suoritus jättää soveltamisalan, kaikki kyseisessä laajuudessa luodut automaattiset objektit tuhoutuvat. Python tukee seuraavia ohjauslauseita.
Python while -silmukka jatka-lauseella
Python Jatka lausuntoa palauttaa ohjauksen silmukan alkuun.
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> |
>
>Lähtö
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>
Python while -silmukka break-lauseella
Python Taukolausunto tuo hallinnan pois silmukasta.
Python
java korvaa kaikki
# 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> |
>
>Lähtö
Current Letter : g>
Python while -silmukka pass-lauseella
Pythonin pass-käsky kirjoittaa tyhjiä silmukoita. Passia käytetään myös tyhjille ohjauslauseille, funktioille ja luokille.
Python
# An empty loop> a>=> 'geeksforgeeks'> i>=> 0> > while> i <>len>(a):> >i>+>=> 1> >pass> > print>(>'Value of i :'>, i)> |
>
>Lähtö
Value of i : 13>
Vaikka silmukka muun kanssa
Kuten edellä mainittiin, while-silmukka suorittaa lohkon, kunnes ehto täyttyy. Kun ehdosta tulee epätosi, lauseke välittömästi silmukan jälkeen suoritetaan. Muu lauseke suoritetaan vain, kun while-ehto muuttuu epätosi. Jos murtaudut silmukasta tai jos poikkeus nostetaan esiin, sitä ei suoriteta.
Huomautus: Muu-lohko juuri for/while jälkeen suoritetaan vain, kun silmukkaa EI päätetä break-käskyllä.
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'>)> |
>
mikä on linux-tiedostojärjestelmä
>Lähtö
1 2 3 4 No Break 1>
Sentinel Controlled Statement
Tässä emme käytä laskurimuuttujia, koska emme tiedä kuinka monta kertaa silmukka suoritetaan. Täällä käyttäjä päättää, kuinka monta kertaa hän haluaa suorittaa silmukan. Tätä varten käytämme sentinel-arvoa. Sentinel-arvo on arvo, jota käytetään päättämään silmukan aina, kun käyttäjä syöttää sen, yleensä sentinel-arvo on -1.
Python while -silmukka käyttäjän syötteellä
Tässä se pyytää ensin käyttäjää syöttämään numeron. jos käyttäjä syöttää -1, silmukka ei suoriteta, ts.
- Käyttäjä syöttää luvun 6 ja silmukan runko suoritetaan ja pyytää uudelleen syötettä
- Täällä käyttäjä voi syöttää useita kertoja, kunnes hän syöttää -1 lopettaakseen silmukan
- Käyttäjä voi päättää, kuinka monta kertaa hän haluaa syöttää syötteen
Python
a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> > while> a !>=> ->1>:> >a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> |
>
>
Lähtö:

Tulostusnäytön kuva
While-silmukka Boolen arvoilla
Yksi yleinen loogisten arvojen käyttö while-silmukassa on luoda ääretön silmukka, josta voidaan poistua vain jonkin silmukan ehdon perusteella.
java tulo
Esimerkki :
Tässä esimerkissä alustamme laskurin ja käytämme sitten ääretöntä while-silmukkaa (True on aina tosi) laskurin kasvattamiseen ja sen arvon tulostamiseen. Tarkistamme, onko laskuri saavuttanut tietyn arvon, ja jos on, poistumme silmukasta break-lauseella.
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.'>)> |
>
>Lähtö
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 -silmukka Python-luettelon kanssa
Tässä esimerkissä olemme ajaneet luettelon aikana while-silmukan, joka jatkuu, kunnes luettelossa on elementti.
Python
# checks if list still> # contains any element> a>=> [>1>,>2>,>3>,>4>]> > while> a:> >print>(a.pop())> |
>
>Lähtö
4 3 2 1>
Yksi lause eston aikana
Aivan kuten if-lohko, jos while-lohko koostuu yhdestä käskystä, voimme ilmoittaa koko silmukan yhdellä rivillä. Jos silmukan rungon muodostavassa lohkossa on useita lauseita, ne voidaan erottaa puolipisteillä (;).
Python
# Python program to illustrate> # Single statement while block> count>=> 0> while> (count <>5>):> >count>+>=> 1> >print>(>'Hello Geek'>)> |
>
>Lähtö
Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>
Python While Loop -harjoituskysymykset
Alla on kaksi harjoituskysymystä Python while -silmukasta. Olemme käsitelleet 2 tärkeää harjoituskysymystä, jotka perustuvat pomppivaan palloohjelmaan ja lähtölaskentaohjelmaan.
Q1. Vaikka silmukan harjoituskysymys perustuu pomppivan pallon ongelmaan
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.'>)> |
>
>
Lähtö
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. Yksinkertainen while-silmukan harjoituskoodi lähtölaskentakellon rakentamiseen
merkkijonon java arvo
Python
countdown>=> 10> while> countdown>>> >print>(countdown)> >countdown>->=> 1> print>(>'Blast off!'>)> |
>
>
Lähtö
10 9 8 7 6 5 4 3 2 1 Blast off!>