logo

Python While Loop

Krajta Zatímco smyčka se používá k opakovanému provádění bloku příkazů, dokud není splněna daná podmínka. Když se podmínka stane nepravdivou, provede se řádek bezprostředně po smyčce v programu.

Syntaxe cyklu while v Pythonu

  while  expression:  statement(s)>

Vývojový diagram Pythonu While Loop

Python While Loop

Zatímco smyčka spadá do kategorie neurčité opakování . Neurčitá iterace znamená, že počet provedení smyčky není předem výslovně určen.



Příkazy představují všechny příkazy odsazené stejným počtem znakových mezer poté, co jsou programovací konstrukce považovány za součást jednoho bloku kódu. Python používá jako metodu seskupování příkazů odsazení. Po provedení cyklu while je výraz expr nejprve vyhodnocen v booleovském kontextu a pokud je pravdivý, provede se tělo smyčky. Poté je výraz znovu zkontrolován, pokud je stále pravdivý, tělo se provede znovu a pokračuje, dokud se výraz nestane nepravdivým.

Rozdíl mezi Python pro smyčku a Python While Loop

Hlavní rozdíl mezi Python For Loop a Python While Loop je ten, že Python for loop se obvykle používá, když je počet iterací známý , zatímco smyčka Python while se používá, když je počet iterací neznámý



Python While Loop

V tomto příkladu bude podmínka pro while pravdivá, pokud bude proměnná čítače (count) menší než 3.

Krajta






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

>

>

Výstup

Hello Geek Hello Geek Hello Geek>

Infinite while Loop v Pythonu

Zde je hodnota podmínky vždy True. Proto se tělo smyčky spouští nekonečněkrát, dokud se paměť nezaplní.

Krajta




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

>

123 film

>

Řídicí příkazy v Pythonu s příklady

Příkazy řízení smyčky mění provádění z jejich normální sekvence. Když provádění opustí obor, všechny automatické objekty, které byly vytvořeny v tomto oboru, budou zničeny. Python podporuje následující řídicí příkazy.

Cyklus while v Pythonu s příkazem continue

Krajta Pokračovat v prohlášení vrátí ovládací prvek na začátek smyčky.

Krajta




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

>

>

Výstup

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

Smyčka while v Pythonu s příkazem break

Krajta Prohlášení o přerušení přináší kontrolu ze smyčky.

Krajta




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

>

>

Výstup

Current Letter : g>

Smyčka while v Pythonu s příkazem pass

Příkaz Python pass pro zápis prázdných smyček. Pass se také používá pro prázdné řídicí příkazy, funkce a třídy.

Krajta




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

>

>

Výstup

Value of i : 13>

Zatímco smyčka s jiným

Jak bylo diskutováno výše, while cyklus provádí blok, dokud není splněna podmínka. Když se podmínka stane nepravdivou, příkaz se provede ihned po cyklu. Klauzule else se provede pouze tehdy, když se vaše podmínka while stane nepravdivou. Pokud se vymaníte ze smyčky nebo pokud je vyvolána výjimka, nebude provedena.

Poznámka: Blok else těsně po for/while se provede pouze tehdy, když smyčka NENÍ ukončena příkazem break.

Krajta




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

>

>

Výstup

1 2 3 4 No Break 1>

Kontrolované prohlášení Sentinel

V tomto nepoužíváme žádnou proměnnou čítače, protože nevíme, kolikrát se smyčka provede. Zde uživatel rozhodne, kolikrát chce smyčku provést. K tomu používáme sentinelovou hodnotu. Hodnota sentinelu je hodnota, která se používá k ukončení smyčky, kdykoli ji uživatel zadá, obecně je hodnota sentinelu -1.

je kat timpf právnička

Smyčka Python while s uživatelským vstupem

Zde nejprve požádá uživatele o zadání čísla. pokud uživatel zadá -1, smyčka se neprovede, tzn.

  • Uživatel zadá 6 a tělo smyčky se provede a znovu požádá o vstup
  • Zde může uživatel zadávat mnohokrát, dokud nezadá -1 pro zastavení smyčky
  • Uživatel se může rozhodnout, kolikrát chce zadat vstup

Krajta




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

>

>

Výstup:

Obraz výstupní obrazovky

Zatímco smyčka s booleovskými hodnotami

Jedním z běžných použití booleovských hodnot v cyklech while je vytvoření nekonečné smyčky, kterou lze opustit pouze na základě určité podmínky v rámci smyčky.

Příklad :

V tomto příkladu inicializujeme čítač a poté použijeme nekonečnou smyčku while (pravda je vždy pravdivá) ke zvýšení čítače a vytištění jeho hodnoty. Zkontrolujeme, zda čítač dosáhl určité hodnoty a pokud ano, opustíme smyčku pomocí příkazu break.

Krajta




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

>

>

Výstup

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 se seznamem Pythonu

V tomto příkladu jsme provedli smyčku while nad seznamem, která bude běžet, dokud nebude v seznamu přítomen prvek.

Krajta




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

>

>

Výstup

4 3 2 1>

Jediný příkaz while block

Stejně jako u bloku if, pokud se blok while skládá z jediného příkazu, můžeme deklarovat celou smyčku na jednom řádku. Pokud je v bloku, který tvoří tělo smyčky, více příkazů, mohou být odděleny středníky (;).

Krajta




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

>

>

Výstup

Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>

Otázky na cvičení v Pythonu

Níže jsou dvě cvičební otázky o cyklu Python while. Probrali jsme 2 důležité cvičební otázky založené na programu skákacího míče a programu odpočítávání.

Q1. Otázka na cvičení ve smyčkách založená na problému s skákajícím míčem

Krajta




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

>

>

Výstup

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. Jednoduchý kód cvičení se smyčkou pro sestavení odpočítávacích hodin

Krajta




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

hrithik rošanský věk

>

>

Výstup

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