Циклы — одна из фундаментальных концепций языков программирования. Циклы используются для выполнения повторяющихся задач до тех пор, пока не будет выполнено определенное условие.
В Python есть две основные конструкции циклов, которые позволяют многократно повторять блок кода: циклы for
и while
В этой статье мы рассмотрим основы for
в Python. Мы также покажем вам, как использовать range
для генерации последовательности чисел, а else
break
и continue
для изменения потока цикла.
Содержание
for в Python
Цикл for
в Python перебирает элементы последовательности и многократно выполняет блок операторов.
Цикл for
Python имеет следующую форму:
for item in sequence:
statements
Оператор for
начинается с for
, затем переменной ( item
), которой назначается каждый элемент последовательности (цель управления циклом), за которым следует in
и, наконец, последовательность. Каждый условный оператор заканчивается двоеточием ( :
).
Блок statements
начинается с отступа и заканчивается первой строкой без отступа. Большинство людей предпочитают использовать отступы с четырьмя или двумя пробелами. Официальное руководство по стилю для кода Python рекомендует использовать 4 пробела для каждого уровня отступа и избегать смешивания использования табуляции и пробелов для отступа.
Вот пример:
berries = ["Blueberry", "Raspberry", "Strawberry"]
for berry in berries:
print(berry)
Blueberry
Raspberry
Strawberry
Вы можете перебирать любую последовательность, такую как строка, список, словарь или кортеж.
В приведенном ниже коде мы перебираем символы в строке linux:
for x in 'linux':
print(x)
l
i
n
u
x
При просмотре словаря переменная присваивается ключу:
berries = {'Blueberry': 100, 'Raspberry': 125, 'Strawberry': 150}
for key in berries:
print(key)
Blueberry
Raspberry
Strawberry
Для доступа к значениям словаря используйте индекс ключа:
berries = {'Blueberry': 100, 'Raspberry': 125, 'Strawberry': 150}
for key in berries:
print(berries[key])
Другой вариант для цикла по значениям словаря — использовать метод values()
:
berries = {'Blueberry': 100, 'Raspberry': 125, 'Strawberry': 150}
for value in berries.values():
print(value)
Результат обоих примеров одинаков:
100
125
150
Конструктор range()
Конструктор Python range()
позволяет генерировать последовательность целых чисел, определяя начальную и конечную точки диапазона. range()
работает по-разному в Python 2 и 3. В этой статье мы используем Python 3.
range()
обычно используется с for
для перебора последовательности чисел. Это Python-эквивалент цикла for
Когда указан только один аргумент, range
возвращает последовательность чисел, увеличенных на 1, начиная с 0 до argument - 1
:
for i in range(3):
print(i)
0
1
2
Если указаны два аргумента, range
возвращает последовательность чисел, увеличенных на 1, начиная с первого аргумента до second argument - 1
:
for i in range(3, 5):
print(i)
3
4
Третий аргумент позволяет указать приращение:
for i in range(0, 16, 5):
print(i)
0
5
10
15
Вложенный for
цикл
Вложенный цикл — это цикл внутри другого цикла. Они часто используются для обработки итерируемого объекта, содержащего итерируемые элементы:
for i in range(0, 6):
for j in range(0, 6):
print('%d + %d = %d' % (i, j, i+j))
0 + 0 = 0
0 + 1 = 1
0 + 2 = 2
...
5 + 3 = 8
5 + 4 = 9
5 + 5 = 10
Операторы break и continue
Операторы break
и continue
позволяют контролировать выполнение цикла for
.
Оператор break
Оператор break
завершает текущий цикл и передает управление программой оператору, следующему за циклом. При использовании внутри вложенного цикла break
завершает самый внутренний цикл.
В следующем примере мы используем if
для прекращения выполнения цикла, когда текущий повторяемый элемент равен ‘Raspberry’:
for i in ["Blueberry", "Raspberry", "Strawberry"]:
if i == "Raspberry":
break
print(i)
Blueberry
Оператор continue
Оператор continue
завершает текущую итерацию цикла и передает управление программой следующей итерации цикла. Цикл не прерывается; пропускается только текущая итерация.
В следующем примере мы перебираем диапазон чисел. Когда текущий повторяемый элемент равен ‘3’, continue
приведет к возврату выполнения к началу цикла и продолжению следующей итерации:
for i in range(1, 6):
if i == 3:
continue
print(i)
1
2
4
5
Пункт else
В Python for
может иметь необязательное предложение else
Предложение else
выполняется, когда цикл завершается нормально, то есть когда все итерации исчерпаны:
for i in ["Blueberry", "Raspberry", "Strawberry"]:
print(i)
else:
print('Loop completed.')
Blueberry
Raspberry
Strawberry
Loop completed.
Когда цикл завершается break
или continue
, предложение else
не выполняется:
for i in ["Blueberry", "Raspberry", "Strawberry"]:
if i == "Raspberry":
break
print(i)
else:
print('Loop completed.')
Blueberry
Вывод
Цикл for
Python используется для многократного выполнения блока кода фиксированное количество раз.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.