Новопридобитото програмно концепция може да повиши уменията ви на съвсем ново ниво. Ако вече сте запознати с for цикли, време е да се запознаете с още един основен компонент на програмирането: while цикли. В това ръководство ще научите какво представляват while цикли, как работят и как можете ефективно да ги използвате в своя Python код.
Основни установления
- While цикли повтарят изпълнението на кода, докато определено условие е изпълнено.
- Това е решаващо, за да се уверите, че цикълът спира в някакъв момент, за да избегнете безкрайни цикли.
- С break, continue и pass можете да контролирате поведението на while цикли.
Основи на while цикъла
While цикълът е един от основните видове цикли в Python, който ви позволява да изпълнявате блок код повторно, докато условието остава верно. За разлика от for цикъла, while цикълът не повтаря изпълнението за определен брой итерации, а толкова, колкото изисква логиката на вашата програма.
Синтаксис на while цикъла
По-долу ще обясня структурата на while цикъла по-подробно.

Първо определяте условие, което ще бъде проверено. Ако условието е True (истинно), блокът код вътре в цикъла ще бъде изпълнен. След всяко преминаване, условието се проверява отново.
Прост пример
Да предположим, че искате да увеличите стойността на променливата x, докато тя е по-малка от 4.

При всяко преминаване x се увеличава, а текущата стойност на x се извежда. Това продължава, докато условието не е различно.
Край на цикъла
Важно е цикълът да спре в някакъв момент, а условието да стане False. В противен случай създавате безкраен цикъл, който може да доведе до срив на програмата ви. За да избегнете това, уверете се, че променливата, която проверявате, действително се променя, така че условието да не остава винаги True.

Else блок в while цикли
Друг полезен аспект на while цикли е употребата на else блок. Този блок се изпълнява, когато цикълът приключи и условието вече не е изпълнено.

Когато изпълните горния код, в края на цикъла ще се изведе съобщението „Цикълът е завършен.“
Контрол на цикли с Break и Continue
В по-сложни програми може да се наложи да управлявате поведението на while цикли допълнително. Тук влизат командите break, continue и pass.
Break
С командата break можете ръчно да прекратите цикъла. Когато изпълните определено условие, можете предварително да напуснете цикъла.

В този пример цикълът прекратява, веднага щом x достигне стойността 2, така че само x = 0 и x = 1 се извеждат.
Continue
Командата continue пропуска текущата итерация и преминава директно към следващата.

В този случай x = 2 не се извежда, тъй като изпълнението преминава към следващата итерация, щом x достигне 2.
Pass
Командата pass се използва, за да остави блока на инструкцията празен, без да изпълнява нещо. Тя е полезна, когато трябва да имате запълващ елемент, но все още не сте сигурни какво да изпълнявате там.

В този пример while цикълът има условие, което не оказва влияние върху x = 2, но кодът все пак не остава сложен.
Резюме – While цикли в Python: Ръководство за начинаещи
В това ръководство научихте основите на while цикли в Python. Сега знаете как да определите while цикъл, какъв е синтаксисът му и кои функции като break, continue и pass са на разположение за ефективно управление на цикли. Не забравяйте, че трябва винаги да се уверите, че вашият цикъл спира в някакъв момент, за да избегнете безкрайни цикли.
Често задавани въпроси
Как работи while цикъл?While цикъл повтаря изпълнението на блок код, докато определено условие е изпълнено.
Каква е разликата между break и continue?break прекъсва цикъла напълно, докато continue пропуска текущата итерация и преминава към следващата.
Как да избегна безкрайни цикли в моя код?Уверете се, че условието на while цикъла в някакъв момент не е вярно, като съответно променяте проверяваната променлива.
Вреди ли да използвам pass в моя цикъл?Не, pass е запълващ элемент и не влияе на поведението на цикъла ви. Тя просто служи, за да избегнете синтактични грешки.
Какво се случва, ако условието на while цикъл не е изпълнено от самото начало?Ако условието не е изпълнено при първото преминаване, блокът код на цикъла никога няма да бъде изпълнен, но else блокът може да бъде изпълнен, ако е бил дефиниран.