logo

Python While Loop

Pytonorm Medan Loop används för att exekvera ett block av satser upprepade gånger tills ett givet villkor är uppfyllt. När villkoret blir falskt exekveras raden omedelbart efter loopen i programmet.

Syntax för while-loop i Python

  while  expression:  statement(s)>

Flödesschema för Python While Loop

Python While Loop

Medan loop faller under kategorin obestämd iteration . Obestämd iteration innebär att antalet gånger som loopen exekveras inte är explicit specificerat i förväg.



Påståenden representerar alla påståenden indragna med samma antal teckenmellanslag efter att en programmeringskonstruktion anses vara en del av ett enda kodblock. Python använder indrag som sin metod för att gruppera uttalanden. När en while-loop exekveras, utvärderas expr först i ett booleskt sammanhang och om det är sant exekveras loopkroppen. Sedan kontrolleras expr igen, om det fortfarande är sant så exekveras kroppen igen och detta fortsätter tills uttrycket blir falskt.

Skillnad mellan Python för loop och Python While Loop

Den största skillnaden mellan Python For Loop Versus Python While Loop är att Python for loop vanligtvis används när antalet iterationer är känd , medan Python while loop används när antalet iterationer är okänd



Python While Loop

I det här exemplet kommer villkoret för while att vara sant så länge räknarvariabeln (antal) är mindre än 3.

Pytonorm






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

>

>

Produktion

Hello Geek Hello Geek Hello Geek>

Oändligt medan Loop in Python

Här är värdet på villkoret alltid True. Därför körs slingans kropp oändliga gånger tills minnet är fullt.

Pytonorm




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

>

>

Kontrollsatser i Python med exempel

Slingkontrollsatser ändrar exekvering från sin normala sekvens. När exekveringen lämnar ett scope, förstörs alla automatiska objekt som skapades i det scopet. Python stöder följande kontrollsatser.

Python while loop med continu-satsen

Pytonorm Fortsätt uttalande återställer kontrollen till början av slingan.

Pytonorm




# 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>

>

>

Produktion

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

Python while loop med en break-sats

Pytonorm Paus uttalande ger kontrollen ur kretsen.

Pytonorm




# 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>

>

>

Produktion

Current Letter : g>

Python while loop med en pass-sats

Python-passsatsen för att skriva tomma loopar. Pass används också för tomma kontrollsatser, funktioner och klasser.

Pytonorm




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

>

>

Produktion

Value of i : 13>

Medan loop med annat

Som diskuterats ovan exekverar while loop blocket tills ett villkor är uppfyllt. När villkoret blir falskt exekveras uttalandet omedelbart efter loopen. else-satsen exekveras endast när ditt while-villkor blir falskt. Om du bryter dig ur loopen, eller om ett undantag höjs, kommer det inte att exekveras.

Notera: Det andra blocket strax efter for/while exekveras endast när loopen INTE avslutas med en break-sats.

Pytonorm




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

>

java heltal
>

Produktion

1 2 3 4 No Break 1>

Sentinel kontrollerat uttalande

I detta använder vi ingen räknarvariabel eftersom vi inte vet hur många gånger loopen kommer att köras. Här bestämmer användaren hur många gånger han vill köra slingan. För detta använder vi ett sentinelvärde. Ett sentinelvärde är ett värde som används för att avsluta en loop närhelst en användare går in i den, i allmänhet är sentinelvärdet -1.

Python while loop med användarinmatning

Här ber den först användaren att ange ett nummer. om användaren anger -1 så kommer slingan inte att köras, dvs.

  • Användaren anger 6 och slingans kropp körs och ber återigen om input
  • Här kan användaren mata in många gånger tills han anger -1 för att stoppa loopen
  • Användaren kan bestämma hur många gånger han vill ange input

Pytonorm




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

>

>

Produktion:

Utdata skärmbild

While loop med booleska värden

En vanlig användning av booleska värden i while-loopar är att skapa en oändlig loop som bara kan lämnas baserat på något tillstånd i loopen.

Exempel :

I det här exemplet initierar vi en räknare och använder sedan en oändlig while-loop (True är alltid sant) för att öka räknaren och skriva ut dess värde. Vi kontrollerar om räknaren har nått ett visst värde och i så fall lämnar vi loopen med break-satsen.

Pytonorm




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

>

>

Produktion

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 loop med Python lista

I det här exemplet har vi kört en while-loop över en lista som kommer att köras tills det finns ett element i listan.

Pytonorm




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

>

>

Produktion

4 3 2 1>

Enstaka uttalande medan block

Precis som if-blocket, om while-blocket består av en enda sats kan vi deklarera hela slingan på en enda rad. Om det finns flera satser i blocket som utgör loopkroppen kan de separeras med semikolon (;).

Pytonorm




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

>

>

Produktion

Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>

Python While Loop Exercise Questions

Nedan finns två övningsfrågor om Python while loop. Vi har täckt 2 viktiga övningsfrågor baserade på studsbollsprogrammet och nedräkningsprogrammet.

Q1. While loop övningsfråga baserad på problem med studsande boll

Pytonorm




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

>

>

Produktion

biträdande poliskommissarie
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. Enkel while-loop träningskod för att bygga nedräkningsklocka

Pytonorm




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

>

>

Produktion

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