Цикл for в Python — используется для многократного повторения инструкций или части программы.
Именно цикл for используется в основном для перебора последовательности элементов (списков, кортежей, строк) и вообще любых итерируемых объектов.
for значение in последовательность:
Тело цикла for
Тело цикла for отделяется отступом.
my_list = ['один', 'два', 'три']
for item in my_list:
print(item)
#один
#два
#три
Итерация (Iteration) — это один круг повторения цикла.
my_str
— Итерируемый объект (Iterable) — объект, который отдает по одному результату за каждую итерацию.
item
— Итератор (iterator) — результат каждой итерации.
Цикл будет продолжается пока не будет достигнут последний элемент последовательность.
Эти операторы необходимы для управления циклом, работают точно так же, как и в цикле while.
С помощью оператора break
, мы можем прервать выполнение цикла:
my_list = ['один', 'два', 'три']
for item in my_list:
if item == 'три':
break
print(item)
#один
#два
С помощью оператора continue
, мы можем прервать выполнение текущей итерации и перейти к следующей:
my_list = ['один', 'два', 'три']
for item in my_list:
if item == 'два':
continue
print(item)
#один
#три
Оператор 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('Цикл завершен')
#один
#два
Создадим строку и с помощью цикла переберем все символы этой строки:
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
С помощью цикла переберем элементы списка и выведем все элементы, записанные в нижнем регистре:
my_list = ['Один', 'Два', 'Три']
for item in my_list:
print(item.lower())
#один
#два
#три
С помощью цикла выведем умноженные на 2 элементы кортежа:
my_tuple = (1, 2, 3)
for item in my_tuple:
print(item * 2)
#2
#4
#6
С помощью цикла создадим второе множество, состоящее из квадратов элементов первого множества:
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}
Т.к. словарь это не последовательность, а набор элементов с доступом по ключу, то здесь будет немного сложнее.
Для того чтобы перебрать словарь в цикле можно воспользоваться методом словарей 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
С помощью функции 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
Также 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']
Содержание: