Цикл for в Python имеет возможность перебирать элементы любой последовательности, например списка или строки.

Синтаксис

Синтаксис цикла for в Python:

for iterating_var in последовательность:
   оператор(ы)

Если последовательность содержит список выражений, она вычисляется первой. Затем первый элемент последовательности присваивается переменной итерации iterating_var. Далее выполняется блок операторов. Каждому элементу в списке присваивается значение iterating_var, и блок операторов выполняется до тех пор, пока не будет исчерпана вся последовательность.

Блок-схема

Блок-схема цикла for в Python

Пример

#!/usr/bin/python

for letter in 'Python':     # Первый пример
   print 'Текущая буква: ', letter

fruits = ['банан', 'яблоко',  'манго']
for fruit in fruits:        # Второй пример
   print 'Текущий фрукт: ', fruit

print "До свидания!"

Когда приведённый выше код выполнится, он даст следующий результат:

Текущая буква: P
Текущая буква: y
Текущая буква: t
Текущая буква: h
Текущая буква: o
Текущая буква: n
Текущий фрукт: банан
Текущий фрукт: яблоко
Текущий фрукт: манго
До свидания!

Итерация цикла for по индексу последовательности

Альтернативный способ перебора каждого элемента — смещение индекса в самой последовательности. Ниже приведен простой пример:

#!/usr/bin/python

fruits = ['банан', 'яблоко',  'манго']
for index in range(len(fruits)):
   print 'Текущий фрукт: ', fruits[index]

print "До свидания!"

Когда приведённый выше код выполнится, он даст следующий результат:

Текущий фрукт: банан
Текущий фрукт: яблоко
Текущий фрукт: манго
До свидания!

Здесь мы воспользовались помощью встроенной функции len(), которая предоставляет общее количество элементов в кортеже, а также встроенной функции range(), чтобы дать нам фактическую последовательность для повторения.

Использование оператора else в цикле for

Python поддерживает оператор else, объединенный с оператором цикла for. Если оператор else используется с циклом for, оператор else выполняется, когда цикл исчерпал итерацию списка.

В следующем примере показана конструкция оператора else с оператором for, который выполняет поиск простых чисел от 10 до 20.

#!/usr/bin/python

for num in range(10,20):     #повторять от 10 до 20
   for i in range(2,num):    #перебирать множители числа
      if num%i == 0:         #определить первый множитель
         j=num/i             #вычислить второй множитель
         print '%d равно %d * %d' % (num,i,j)
         break #перейти к следующему числу, #первый FOR
   else:                  # else часть цикла
      print num, 'это простое число'
		break

Когда приведённый выше код выполнится, он даст следующий результат:

10 равно 2 * 5
11 это простое число
12 равно 2 * 6
13 это простое число
14 равно 2 * 7
15 равно 3 * 5
16 равно 2 * 8
17 это простое число
18 равно 2 * 9
19 это простое число

Оглавление