
Циклы — одно из фундаментальных понятий языков программирования. Циклы используются для выполнения повторяющихся задач до тех пор, пока не будет выполнено определённое условие.
В Python есть две основные циклические конструкции, которые позволяют многократно повторять блок кода: циклы for и while .
В этой статье мы рассмотрим основы циклов for в Python. Мы также покажем, как использовать тип range для генерации последовательности чисел, а также как использовать операторы else , break и continue для изменения хода выполнения цикла.
Python for цикла
Цикл for в Python перебирает элементы последовательности и многократно выполняет блок операторов.
Цикл for Python имеет следующий вид:
for item in sequence: statements
Оператор for начинается с ключевого слова for , затем следует переменная ( item ), которой присваивается каждый элемент последовательности (целевой объект управления циклом), затем ключевое слово in и, наконец, сама последовательность. Каждый условный оператор заканчивается двоеточием ( : ).
Блок statements начинается с отступа и заканчивается первой строкой без отступа. Большинство разработчиков используют отступ в 4 или 2 пробела. Официальное руководство по стилю кода Python рекомендует использовать 4 пробела на уровень отступа и избегать смешивания табуляции и пробелов для отступов.
Вот пример:
berries = [ "Blueberry" , "Raspberry" , "Strawberry" ] for berry in berries : print ( berry )
Blueberry Raspberry Strawberry
Вы можете перебирать любую последовательность, например строку, список, словарь или кортеж.
В приведенном ниже коде мы перебираем символы в строке «linux»:
for x in 'linux' : print ( x )
linux
При циклическом просмотре словаря переменная присваивается ключу:
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 для перебора последовательности чисел. Это эквивалент цикла for в стиле C for Python.
Если задан только один аргумент, 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 используется для многократного выполнения блока кода фиксированное количество раз.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства