Python с нуля — часть 5: циклы – цикл for

 

PythonPython – цикл for

Цикл for в Python перебирает объекты в переданных ему последовательностях, например –  списки (lists) и строки (strings).

Синтаксис

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

for переменная in последовательность:
   действие(я)

Если последовательность содержит список выражений (операций) – сначала будут обработаны они. Далее, значение первого элемента в последовательности будет присвоено переменной (iterating_var на схеме). Далее выполняется блок кода “действие”. Так, значение каждого объекта в последовательности присваивается переменной цикла, и блок кода будет выполняться с ней до тех пор, пока не закончатся объекты в заданной последовательности (например – в списке).

python_for_loop

Пример

for letter in 'Python':     # First Example
   print 'Current Letter :', letter

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # Second Example
   print 'Current fruit :', fruit

print "Good bye!"

Результат выполнения этого кода:

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

Обработка в цикле по индексу последовательности

Ещё один вариант обработки последовательности в цикле – это обработка элементов последовательности по их индексам. Вот простой пример:

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print 'Current fruit :', fruits[index]

print "Good bye!"

Результат выполнения такого цикла:

Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

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

Мы рассмотрим кортежи и некоторые встроенные функции языка Python далее.

Оператор else в цикле for

В языке Python можно использовать оператор else вместе с циклами.

  • если оператор else используется с циклом for – он будет выполнен, когда список для цикла будет завершен;
  • при использовании else вместе с циклом while – он будет использован, когда условие примет значение ложь (false).

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

for num in range(10,20):  #to iterate between 10 to 20
   for i in range(2,num): #to iterate on the factors of the number
      if num%i == 0:      #to determine the first factor
         j=num/i          #to calculate the second factor
         print '%d equals %d * %d' % (num,i,j)
         break #to move to the next number, the #first FOR
   else:                  # else part of the loop
      print num, 'is a prime number'

Результат его работы будет таким:

10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number