Циклы в Python

Иногда бывает нужно один фрагмент кода выполнить несколько раз. В таком случае говорят, что код выполняется в цикле. Для организации циклов в Python есть две конструкции. Это конструкция for и конструкция while.

Цикл while в Python

Начнем рассмотрение с цикла while. Конструкция while — это самая универсальная конструкция для организации цикла. Она есть почти в каждом языке программирования. Смысл ее очень прост: выполнять блок с кодом, пока условие цикла истино.

Конструкция while следующий синтаксис: while условие: тело цикла.

Особенностью языка Python является, что тело цикла не ограничено скобками или словами Begin End. Вместо этого используется отступ в 4 пробела. Весь код который должен выполняться в цикле должен быть на 4 пробела правее чем ключевое слово while.

Рассмотрим простые примеры использования цикла while:


# Вывести таблицу умножения для заданного числа
n = int(input())
i = 1
while i<10:
    print(n," x ",i," = ",i * n)
    i = i + 1

>>>
5
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
>>>

Цикл for в Python

Цикл for в Python используется как цикл со счетчиком и как цикл для перебора всех элементов итерируемом объекта. Давайте разберем подробнее.

Цикл for как цикл со счетчиком

Очень часто цикл for используют, когда нужно выполнить цикл определенное число раз: например 10 раз вывести на экран строку. В Pascal используется счетчик, для которого задаются начальное и конечное значение, в C подобных языках используется конструкция (i=1, i < 10, i++), где указывается начальное значение, условие прекращения цикла и шаг. А в Python используется функция range(1,10).

Например вам нужно вывести на экран 10 раз фразу привет. Вы должны сначала создать набор чисел от 1 до 10 и затем пробежаться по всем числам набора. Набор создает функция range. В качестве аргумента она принимает начальное значение диапазона, конечное и шаг. Например если нужно создать набор чисел от 1 до 10 с шагом 1 мы пишем range(1, 11, 1). Пишем 11 т.к. правый диапазон не включается. А третий параметр — шаг можно вообще не писать если он равен 1.

Вот пример выводящий Привет 10 раз


for i in range(1,11):
    print("Привет")

Результат:

>>>
Привет
Привет
Привет
Привет
Привет
Привет
Привет
Привет
Привет
Привет

Цикл for как цикл forich

Часто бывают случаи когжда нужно перебрать по одному все элементы итерируемого типа. Например все элементы списка или каждый символ строки. Для этого во многих языках используется цикл foreach. В Python же используется цикл for.

Пример где нужно вывести все дни недели из списка.


week = ["Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"]
for i in week:
    print(i)

Результат:

>>>
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресенье