Цикл for в Python

Как работает цикл перебора for в Python: синтаксис, операторы и примеры

Цикл for в Python — используется для многократного повторения инструкций или части программы.

Именно цикл for используется в основном для перебора последовательности элементов (списков, кортежей, строк) и вообще любых итерируемых объектов.

Синтаксис цикла for

for значение in последовательность:
    Тело цикла for

Тело цикла for отделяется отступом.

my_list = ['один', 'два', 'три']
for item in my_list:
    print(item)
#один
#два
#три

Итерация (Iteration) — это один круг повторения цикла.
my_str — Итерируемый объект (Iterable) — объект, который отдает по одному результату за каждую итерацию.
item — Итератор (iterator) — результат каждой итерации.

Как работает цикл for

алгоритм работы цикла for

Цикл будет продолжается пока не будет достигнут последний элемент последовательность.

Операторы break и continue в цикле for

Эти операторы необходимы для управления циклом, работают точно так же, как и в цикле while.

Оператор break

С помощью оператора break, мы можем прервать выполнение цикла:

my_list = ['один', 'два', 'три']
for item in my_list:
    if item == 'три':
        break
    print(item)
#один
#два

Оператор continue

С помощью оператора continue, мы можем прервать выполнение текущей итерации и перейти к следующей:

my_list = ['один', 'два', 'три']
for item in my_list:
    if item == 'два':
        continue
    print(item)
#один
#три

Else в цикле for

else в цикле for

Оператор else будет выполнен после полного завершения цикла.

Синтаксис else:

for <переменная> in <последовательность>:
    <действие>
else:
    <действие>
my_list = ['один', 'два', 'три']
for item in my_list:
    print(item)
else:
    print('Цикл завершен')
#один
#два
#три
#Цикл завершен

Но стоит заметить, если цикл будет прерван оператором break, то else не будет исполнен:

my_list = ['один', 'два', 'три']
for item in my_list:
    if item == 'три':
        break
    print(item)
else:
    print('Цикл завершен')
#один
#два

Примеры цикла for с последовательностями

Цикл for по строке

Создадим строку и с помощью цикла переберем все символы этой строки:

my_str = 'FullStacker'
for char in my_str:
    print(char)
#F
#u
#l
#l
#S
#t
#a
#c
#k
#e
#r

Для того чтобы вывести в обратном порядке, можно воспользоваться функцией reversed()

my_str = 'FullStacker'
for char in reversed(my_str):
    print(char)
#r
#e
#k
#c
#a
#t
#S
#l
#l
#u
#F

Цикл for по списку

С помощью цикла переберем элементы списка и выведем все элементы, записанные в нижнем регистре:

my_list = ['Один', 'Два', 'Три']
for item in my_list:
    print(item.lower())
#один
#два
#три

Цикл for по кортежу

С помощью цикла выведем умноженные на 2 элементы кортежа:

my_tuple = (1, 2, 3)
for item in my_tuple:
    print(item * 2)
#2
#4
#6

Цикл for по множеству

С помощью цикла создадим второе множество, состоящее из квадратов элементов первого множества:

my_set = {1, 2, 3}
my_set_2 = set()
for item in my_set:
    my_set_2.add(item ** 2)
print(my_set_2)
#{1, 4, 9}

Цикл for по словарю

Т.к. словарь это не последовательность, а набор элементов с доступом по ключу, то здесь будет немного сложнее.

Для того чтобы перебрать словарь в цикле можно воспользоваться методом словарей dict.items(), который возвращает последовательность элементов:

my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
for key, value in my_dict.items():
    print(key, value)
#key1 value1
#key2 value2
#key3 value3

Цикл for по диапазону range

С помощью функции range() сгенерируем последовательность от 1 до 5 и выведем ее в цикле:

for i in range(1, 6):
    print(i)
#1
#2
#3
#4
#5

Т.к. функции range() имеет возможность задавать не только начало и конец диапазона, но и шаг:

range(start,stop,step size)

Выведем только нечетные числа диапазона от 1 до 10 (т.е. с шагом 2):

for i in range(1, 11, 2):
    print(i)
#1
#3
#5
#7
#9

Также с помощью отрицательного шага, можно вывести последовательность в обратном порядке:

for i in range(5, 0, -1):
    print(i)
#5
#4
#3
#2
#1

Цикл for в одну строку

Также Python дает возможность записи цикла for в одну строку:

[выражение for элемент in последовательность if условие]

Условие if указывается опционально.

Для примера, преобразуем строку в список, состоящий из элементов строки, с помощью цикла for с записью в одну строку:

my_str = 'FullStacker'
my_list = [char for char in my_str]
print(my_list)
#['F', 'u', 'l', 'l', 'S', 't', 'a', 'c', 'k', 'e', 'r']

Содержание: