Освоение циклов Python: for, while, break, continue и enumerate
Освоение циклов Python: for, while, break, continue и enumerate
Циклы — основа итеративного программирования. Они позволяют выполнять блок кода повторно, пока условие выполняется. Python предлагает два основных конструктора циклов: for (итераторы) и while (на основе условия).
Что такое цикл?
Цикл многократно запускает набор инструкций. В Python циклы используются для обработки коллекций, генерации последовательностей или выполнения задач до достижения критерия остановки.
Циклы for (итераторы)
Цикл for итерируется по элементам итерируемого объекта — списков, кортежей, строк или range. Он автоматически останавливается, когда итератор исчерпан, что безопаснее ручного отслеживания индексов.
x = 0
for x in range(2, 7):
print(x)
Вывод:
2
3
4
5
6
Циклы while (на основе условия)
Цикл while повторяется, пока заданное булево выражение остаётся True. Идеален, когда число итераций заранее неизвестно.
x = 0
while x < 4:
print(x)
x += 1
Вывод:
0
1
2
3
Итерация по нечисловым коллекциям
Циклы for отлично работают со строками и другими коллекциями:
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for m in months:
print(m)
Вывод:
Jan
Feb
Mar
Apr
May
Jun
Выход из цикла (break)
Оператор break немедленно завершает цикл. Полезен для раннего выхода при выполнении условия.
for x in range(10, 20):
if x == 15:
break
print(x)
Вывод:
10
11
12
13
14
Пропуск итерации (continue)
Оператор continue пропускает остаток тела цикла для текущей итерации и переходит к следующему циклу.
for x in range(10, 20):
if x % 5 == 0:
continue
print(x)
Вывод:
11
12
13
14
16
17
18
19
Использование enumerate() для индексированных циклов
Встроенная функция enumerate() добавляет счётчик к итерируемому объекту, возвращая пары индекс-значение.
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for i, m in enumerate(months):
print(i, m)
Вывод:
0 Jan
1 Feb
2 Mar
3 Apr
4 May
5 Jun
Повторение инструкции несколько раз
Можно использовать цикл for над строкой цифр или range для повторения сообщения:
for i in '123':
print('guru99', i)
Вывод:
guru99 1
guru99 2
guru99 3
Комплексная таблица примеров
| Тип цикла | Код |
|---|---|
| While loop | x = 0
while x < 4:
print(x)
x += 1 |
| For loop (числовой) | for x in range(2, 7):
print(x) |
| For loop (строка) | months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for m in months:
print(m) |
| Break в for loop | for x in range(10, 20):
if x == 15:
break
print(x) |
| Continue в for loop | for x in range(10, 20):
if x % 5 == 0:
continue
print(x) |
| Enumerate в for loop | months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for i, m in enumerate(months):
print(i, m) |
Совместимость с Python 2
Примеры выше — синтаксис Python 3. Для Python 2 замените print() на print и учтите поведение range.
# While loop
x = 0
while x < 4:
print x
x += 1
# For loop
for x in range(2, 7):
print x
# For loop over string
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for m in months:
print m
# Break example
for x in range(10, 20):
if x == 15:
break
print x
# Continue example
for x in range(10, 20):
if x % 5 == 0:
continue
print x
# Enumerate example
for i, m in enumerate(months):
print i, m
Вывод:
0
1
2
3
2
3
4
5
6
Jan
Feb
Mar
Apr
May
Jun
10
11
12
13
14
11
12
13
14
16
17
18
19
0 Jan
1 Feb
2 Mar
3 Apr
4 May
5 Jun
Для более глубоких справочников обратитесь к официальному руководству Python по управлению потоком.
Python
- Циклы while и do-while в C#: синтаксис, примеры и лучшие практики
- Цикл for в C#: синтаксис, поток выполнения и практические примеры
- Оператор break в C#: как и когда использовать
- Оператор continue в C#: как эффективно пропускать итерации циклов
- Операторы, отступы и комментарии в Python: понятное руководство
- Оператор pass в Python: практическое руководство
- Java-проверка чисел-палиндромов: алгоритмы с while и for циклами
- Освоение циклов Python: for, while, break, continue и enumerate
- Освоение функции range() в Python: от основ к продвинутым сценариям
- Освоение enumerate() в Python: циклы с индексами для списков, кортежей, строк и словарей