uz
KA
июня 23, 2025
Обновлено июня 23, 2025

Цикл While в Python

Python

Языки программирования используются для решения разного рода задач связанных с массивными типами данных, такими как списки, строки, кортежи, словари. И многих других требующих от современного языка обработку большого входящего потока данных. В Python для работы с такими типами существуют циклы, которые подразделяются на цикл со счетчиком for и без определенного количества шагов цикл while python. О втором сегодня и пойдет речь!

Что такое While в Python?

While – представляет собой циклическую конструкцию, которая выполняется до тех пор пока верно условие заданное для нее. Внутри конструкции прописаны инструкции для выполнения цикла, а так же ключевые слова для остановки самой конструкции или пропуска итерации. Рассмотрим ее синтаксис ниже:

Синтаксис цикла
Скриншот №1 — Синтаксис цикла

Сначала задается ключевое слово while, с условием которое проверяется на истинность и если оно True, то выполняется ряд инструкций. Обратите внимание все что имеет отступы принадлежит конструкции и будет выполняться по правилу работы цикла, кроме continue/break, но об этом поговорим ниже. От теории к практике и если до этого было не понятно, каким образом работает циклическая машина, то на примере будет наглядно видно. К примеру, нам необходимо вывести числа от 0 до 5 для этого напишем конструкцию ниже:

n=0
while n <= 5:
print (n)
n+=1

print ('END')

Простой цикл while
Скриншот №2 — Простой цикл while

Обратите внимание, что не все части циклической конструкции из синтаксиса были задействованы, ведь для решения данной задачи достаточно представленных. Объясним работу цикла: для начала n становится равно нулю, затем управление поступает на цикл while, где дословно выполняется конструкт «Пока n меньше или равно 5 делай!». Язык Python достаточно человекочитаемый, поэтому понять можно достаточно просто логически.

Вернемся к циклу, так как ноль больше пяти, то условие выполнится и перейдет к принту нашей переменной n со значением ноль. А так же прибавит к ней единицу, после чего управление опять перейдет к while и проверит условие. Данный круг от проверки до проверки называется итерацией. Как переменная n будет равна 6, то условие не выполнится и управление перейдет на print (‘END’). Вывод будет выглядеть так:

0
1
2
3
4
5
END

Все действия были выполнены в среде облачного сервера от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Создание сервераСкриншот №3 — Создание сервера

Вернемся к циклам, так как циклы это всего лишь конструкция, то внутри себя они могут принимать любые доступные в Python инструкции, что увеличивает возможности работы с ними. Однако важно помнить, что вы можете задать такой алгоритм, условие которого будет всегда истина и он самостоятельно не остановится. К примеру:

n=True
while n:
print (n)
print ('END')
Ошибка в алгоритме while
Скриншот №4 — Ошибка в алгоритме while

Ошибка условия в данном алгоритме приводит к тому, что python бесконечный цикл будет крутиться и выводить значение True. Ведь  переменная цикла python n его хранит и в процессе не меняется, а это значит, что print (‘END’), так никогда и не наступит, так как управление не будет передано из цикла. Поэтому желательно избегать алгоритмов с не меняющимся условием.

Блок else в цикле while

В некоторых случаях может потребоваться дополнительный вывод уведомления для пользователей, изменения значений, а так же обнуления переменных после цикла. Else, как раз для этого подходит и будет выполнен в случае, когда условие будет False или не выполнено. Уведомим пользователей, что закончился поиск в цикле:

user_language = input('Ваши языки:')
ex_language = ['en', 'fr', 'jp', 'kz']

while user_language in ex_language:
print (f'Найден язык в списке: {user_language}')
user_language = 0
else: print ('Конец поиска!')

Else блок
Скриншот №5 — Else блок

Если язык введенный пользователем находится в списке доступных, то он будет найден и выведен. А после того, как условие будет неверным передаст управление блоку else и выпишет строку ‘Конец поиска!’.

Обратите внимание, что else выполнится, при любом случае когда условие в while будет False, даже если цикл и не начал свою работу. Как и в конце, часто условие цикла бывает равно False, соответственно передается управление блоку else.

А как принудительно остановить цикл после полученного значения?

Блоки break и continue в Python

Для этого существуют блоки, которые позволяют закончить выполнение цикла – break, пропустить текущую итерацию – continue. Они используются, так же как и обычные ключевые слова, однако, после них инструкции не выполняются, что важно учитывать, при написании кода. Рассмотрим на примере:

user_language = input('Ваши языки:')
ex_language =['en','fr', 'jp', 'kz']

while user_language in ex_language:
if user_language == 'jp':
user_language='0'
continue
print (f'Найден язык в списке: {user_language}')
break
else: print ('Язык не найдем в списке!')

Break и Continue
Скриншот №6 — Break и Continue

Если пользователь введет язык jp, то передав управление while оно вскоре перейдет на условную конструкцию if, где так же проверяется логическое выражение. В случае с текущим значением jp условие корректно и действия условной конструкции выполнятся, а именно обнуление user_language и continue, которое закончит выполнение текущей итерации и перейдет к новой. Это значит, что условие будет проверено заново и выведено на экран:

Ваши языки: jp
Язык не найдем в списке!

Однако, если ввести другое значение из списка языков, к примеру en, то цикл отработает с выводом:

Ваши языки: en
Найден язык в списке: en

Так как после передачи управления на break цикл завершается без повторной проверки и else не выполняется, потому что это часть цикла. Понимание и правильное применение цикла while позволяет эффективно решать задачи, связанные с повторяющимися процессами и обработкой данных в Python, делая код более гибким и мощным.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 4
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...