logo

Python While Loop

Python Nors Loop naudojamas teiginių blokui vykdyti pakartotinai, kol įvykdoma tam tikra sąlyga. Kai sąlyga tampa klaidinga, eilutė iš karto po ciklo programoje vykdoma.

Ciklo while sintaksė Python

  while  expression:  statement(s)>

Python While Loop struktūrinė schema

Python While Loop

Nors kilpa patenka į kategoriją neapibrėžta iteracija . Neapibrėžta iteracija reiškia, kad ciklo vykdymo kartų skaičius nėra aiškiai nurodytas iš anksto.

Teiginiai reiškia visus teiginius, įtrauktus tuo pačiu simbolių tarpų skaičiumi, po to, kai programavimo konstrukcija yra laikoma vieno kodo bloko dalimi. Python naudoja įtrauką kaip teiginių grupavimo metodą. Kai vykdoma while ciklas, expr pirmiausia įvertinamas Būlio kontekste ir, jei tai tiesa, vykdomas ciklo kūnas. Tada dar kartą patikrinama išraiška, jei ji vis dar teisinga, tada kūnas vėl vykdomas ir tai tęsiasi tol, kol išraiška tampa klaidinga.



Skirtumas tarp Python For Loop ir Python While Loop

Pagrindinis skirtumas tarp Python For Loop ir Python While Loop yra tas, kad Python for loop paprastai naudojamas, kai iteracijų skaičius yra žinomas , tuo tarpu Python while ciklas naudojamas, kai iteracijų skaičius yra nežinomas

Python While Loop

Šiame pavyzdyje sąlyga while bus True, kol skaitiklio kintamasis (skaičius) yra mažesnis nei 3.

Python




# Python program to illustrate> # while loop> count>=> 0> while> (count <>3>):> >count>=> count>+> 1> >print>(>'Hello Geek'>)>

lapė prieš vilką

>

>

Išvestis

Hello Geek Hello Geek Hello Geek>

Infinite while Loop programoje Python

Čia sąlygos reikšmė visada yra True. Todėl ciklo korpusas vykdomas be galo daug kartų, kol atmintis bus pilna.

Python




age>=> 28> > # the test condition is always True> while> age>>>:> >print>(>'Infinite Loop'>)>

>

>

„Python“ valdymo teiginiai su pavyzdžiais

Ciklo valdymo sakiniai pakeičia vykdymą nuo įprastos sekos. Kai vykdymas palieka taikymo sritį, visi automatiniai objektai, sukurti toje srityje, yra sunaikinti. Python palaiko šiuos valdymo teiginius.

Python while ciklas su teiginiu tęsti

Python Tęsti pareiškimą grąžina valdiklį į ciklo pradžią.

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>

>

>

Išvestis

Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>

Python while ciklas su pertraukos teiginiu

Python Pertraukos pareiškimas ištraukia kontrolę iš kilpos.

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>

>

>

Išvestis

Current Letter : g>

Python while ciklas su leidimu

Python pass sakinys tuščioms kilpoms rašyti. Pass taip pat naudojamas tuščiiems valdymo sakiniams, funkcijoms ir klasėms.

Python




# An empty loop> a>=> 'geeksforgeeks'> i>=> 0> > while> i <>len>(a):> >i>+>=> 1> >pass> > print>(>'Value of i :'>, i)>

>

>

Išvestis

mysql skaičius
Value of i : 13>

Nors kilpa su kitu

Kaip aptarta aukščiau, while loop vykdo bloką tol, kol įvykdoma sąlyga. Kai sąlyga tampa klaidinga, pareiškimas iškart po ciklo vykdomas. Kita sąlyga vykdoma tik tada, kai jūsų sąlyga tampa klaidinga. Jei ištrūksite iš ciklo arba jei bus padaryta išimtis, ji nebus vykdoma.

Pastaba: Kitas blokas tik po for/while vykdomas tik tada, kai ciklas NĖRA baigiamas pertraukos sakiniu.

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'>)>

>

>

Išvestis

1 2 3 4 No Break 1>

Sentinel kontroliuojamas pareiškimas

Čia nenaudojame jokio skaitiklio kintamojo, nes nežinome, kiek kartų ciklas bus vykdomas. Čia vartotojas nusprendžia, kiek kartų jis nori vykdyti kilpą. Tam naudojame kontrolinę vertę. Sentinel reikšmė yra reikšmė, kuri naudojama užbaigti kilpą, kai vartotojas ją įveda, paprastai kontrolinė reikšmė yra -1.

Python while ciklas su vartotojo įvestimi

Čia pirmiausia prašoma vartotojo įvesti skaičių. jei vartotojas įveda -1 tai ciklas nebus vykdomas, t.y.

  • Vartotojas įveda 6, o ciklo turinys vykdomas ir vėl prašo įvesties
  • Čia vartotojas gali įvesti daug kartų, kol įveda -1, kad sustabdytų kilpą
  • Vartotojas gali nuspręsti, kiek kartų jis nori įvesti įvestį

Python




a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> > while> a !>=> ->1>:> >a>=> int>(>input>(>'Enter a number (-1 to quit): '>))>

>

>

Išvestis:

Išvesties ekrano vaizdas

Nors ciklas su Būlio reikšmėmis

Vienas įprastas loginių reikšmių panaudojimas while kilpose yra sukurti begalinę kilpą, iš kurios galima išeiti tik atsižvelgiant į tam tikras ciklo sąlygas.

Pavyzdys :

Šiame pavyzdyje inicijuojame skaitiklį, o tada naudojame begalinį ciklą (tiesa visada yra tiesa), kad padidintume skaitiklį ir išspausdintume jo vertę. Patikriname, ar skaitiklis pasiekė tam tikrą reikšmę, ir jei taip, išeiname iš ciklo naudodami pertraukos teiginį.

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.'>)>

>

>

Išvestis

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 ciklas su Python sąrašu

Šiame pavyzdyje sąraše paleidome ciklą, kuris bus vykdomas tol, kol sąraše atsiras elementas.

Python




# checks if list still> # contains any element> a>=> [>1>,>2>,>3>,>4>]> > while> a:> >print>(a.pop())>

>

>

Išvestis

4 3 2 1>

Vienas teiginys blokuojant

Kaip ir blokas if, jei blokas while susideda iš vieno teiginio, galime deklaruoti visą kilpą vienoje eilutėje. Jei bloke, kuris sudaro kilpos pagrindą, yra keli teiginiai, juos galima atskirti kabliataškiais (;).

Python




# Python program to illustrate> # Single statement while block> count>=> 0> while> (count <>5>):> >count>+>=> 1> >print>(>'Hello Geek'>)>

>

>

Išvestis

Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>

„Python While Loop“ pratimų klausimai

Žemiau pateikiami du pratimų klausimai apie Python while kilpą. Išnagrinėjome 2 svarbius pratimų klausimus, pagrįstus atšokančio kamuolio programa ir atgalinės atskaitos programa.

Q1. Nors kilpos pratimo klausimas pagrįstas atšokusio kamuolio problema

Python




kaip skaityti json failą

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.'>)>

>

>

Išvestis

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. Paprastas ciklas pratimų kodas, skirtas sukurti atgalinės atskaitos laikrodį

Python




countdown>=> 10> while> countdown>>>:> >print>(countdown)> >countdown>->=> 1> print>(>'Blast off!'>)>

>

>

Išvestis

10 9 8 7 6 5 4 3 2 1 Blast off!>