Циклы for в Python
Используйте цикл for для перебора последовательности: это может быть список, кортеж, словарь, множество или строка.
Во многих языках for работает совсем иначе. В Python он ведёт себя скорее как методы-итераторы в других объектно-ориентированных языках.
Инструкции в цикле выполняются по одному разу для каждого элемента списка, кортежа, множества и так далее.
Кроме того, вам не нужно заранее создавать переменную-индекс.
Пример
Выведите каждый фрукт из списка:
Вывод: полная программа на Python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
Перебор строки
Строка — это последовательность символов, поэтому её тоже можно перебирать:
Пример
Переберите слово «banana» буква за буквой:
Вывод: полная программа на Python
for x in "banana":
print(x)
Оператор break
Оператор break досрочно завершает цикл, ещё до того как будут пройдены все элементы:
Пример
Выйдите из цикла, как только x станет равен «banana»:
Вывод: полная программа на Python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
Пример
Снова выйдите из цикла на «banana», но теперь break стоит перед print:
Вывод: полная программа на Python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
break
print(x)
Оператор continue
Оператор continue отбрасывает текущую итерацию цикла и сразу переходит к следующей:
Пример
При выводе пропустите banana:
Вывод: полная программа на Python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
Функция range()
Когда нужно повторить код заданное количество раз, подойдёт range().
Эта функция даёт последовательность чисел. Если не указать иное, последовательность начинается с 0, на каждом шаге увеличивается на 1 и останавливается на указанном вами числе.
Это число не включается, поэтому range(6) охватывает значения от 0 до 5, а не от 0 до 6.
Чтобы начать не с 0, передайте начальное значение дополнительным параметром: range(2, 6) даёт значения от 2 до 6, не включая его.
Третий параметр меняет шаг, который по умолчанию равен 1, как в range(2, 30, 3).
Пример
Простой вызов range():
Вывод: полная программа на Python
for x in range(6):
print(x)
Пример
Выбор начала последовательности:
Вывод: полная программа на Python
for x in range(2, 6):
print(x)
Пример
Счёт с шагом 3 вместо шага по умолчанию 1:
Вывод: полная программа на Python
for x in range(2, 30, 3):
print(x)
Else в цикле for
Добавьте к циклу for ключевое слово else, чтобы задать блок, который выполняется после завершения цикла.
Примечание: если цикл завершает оператор break, блок else НЕ выполняется.
Пример
Посчитайте от 0 до 5, а затем выведите сообщение в конце:
Вывод: полная программа на Python
for x in range(6):
print(x)
else:
print("Наконец-то закончено!")
Пример
Здесь цикл прерывается, когда x равен 3, поэтому посмотрите, что произойдёт с блоком else:
Вывод: полная программа на Python
for x in range(6):
if x == 3: break
print(x)
else:
print("Наконец-то закончено!")
Вложенные циклы
Если поместить один цикл внутрь другого, получится вложенный цикл.
На каждой итерации «внешнего цикла» «внутренний цикл» выполняется от начала до конца:
Пример
Соедините каждое прилагательное с каждым фруктом:
Вывод: полная программа на Python
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
Оператор pass
Циклу for нужно тело. Если вашему циклу по какой-то причине нечего делать, напишите там pass, чтобы Python не выдал ошибку.
Пример
Вывод: полная программа на Python
for x in [0, 1, 2]:
pass