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

  • Цикл while
  • Цикл for

Цикл while в Python:

Инструкция while в Python повторяет указанный блок кода до тех пор, пока указанное в цикле условие будет оставаться истинным.

Цикл while в Python записывается следующим образом:

while условие:
    выражение

 При этом выражением может быть как одна так и несколько инструкций. Условием может быть любое истинное или ненулевое значение. Выражение будет повторяться, пока условие будет истинным.

Когда условие становится ложным интерпретатор переводит выполнение программы на строку, следующую за циклом. Рассмотрим следующий пример цикла while в Python:

money = 10 # создаем переменную money и присваиваем ей значение 10
while money > 0: # Запускаем цикл
    print "We have %s dollars" % money #Мы внутри цикла. Печатаем сообщение
    money -= 1 # Все еще внутри цикла. Уменьшаем на один переменную money
print "No more money :( Time to work now" # Мы вне цикла. Печатаем сообщение 

Запустив код, вы увидите следующий результат:

python while loop, пример цикла while в Python

Бесконечный цикл:

Цикл while становится бесконечным в случае, когда условие цикла никогда не становится ложным. Примером задачи для реализации которой необходим бесконечный цикл может быть, например, создание программы "Часы", которая бесконечно будет обновлять и отображать время. Однако, часто бесконечный цикл является ошибкой начинающего программиста, который забыл добавить изменение условия цикла. Например:

num = 1
while num < 10:
    print "Hello"

Не спешите запускать данный цикл, иначе ваша программа начнет бесконечное выполнение. Чтобы остановить выполнение такого скрипта - в shell нужно нажать Ctrl+C.

Цикл for в Python:

Цикл for в Python обладает способностью переберать элементы любого комплексного типа данных (например, строки или списка). В Python цикл for обладает следующим синтаксисом:

for item in sequence:
    statement(s)

Переменной item присваивается значение первого элемента sequence, после чего выполняется statement. Затем переменной item присваивается следующее по порядку значение и так далее до тех пор, пока не будут перебраны все элементы sequence. Например:

word = "child" # строка word
bag = ["knife","wallet", "pen","notebook"] # список bag
countries = { "Swiss":"Bern", "Ukraine":"Kiev", "italy":"Rome", "Australia":"Canberra", "Japan":"Tokyo" } # словарь countries

for letter in word:
    print letter # печатаем по букве из word

for item in bag:
    print item # печатаем по элементу из bag

for county in countries:
    # По умолчанию цикл for проходит по ключам словарей
    # Но нам не составит труда получить значения ключей
    print "The capital of %s is %s" % (country, countries[country])

Запустив код выше получим:

python for loop example, пример цикла for в Python

 

Перебор комплексных типов данных по индексам:

Другой способ прохода циклом for по комплексным типам данных является проход по индексам. Как вы помните, любой элемент последовательности можно получить по его индексу. Для генерации списка индексов воспользуемся встроенной функцией range(). Например:

week_days = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]

for index in range(len(week_days)): # функция len(sequence) возвращает длину (колчество элементов) в sequence
    print week_day[index]

 В результате программа напечатает перечень дней недели.

Команда break в Python:

Команда break в Python прекращает выполнение цикла и переводит выполнение программы на строку следующую после цикла.

Команда break работает как в цикле while та и в цикле for. Например:

# -*- coding: utf-8 -*- Устанавливаем кириллицу
# пример команды break в цикле for 
metals = ["Cu","Fe","Al","Au","U","Mg"]
for item in metals:
    print item
    if item == "Au":
        print "Ура! Я нашел золото!"
        break
print "--------- Начинаем другой цикл ----------"
# пример команды break в цикле while
age = 40
while True:
    print "Мой возраст %s. Должен ходить на работу :-(" % age
    age += 1
    if age > 65:
        print "Ура! Наконец-то пенсия!"
        break

 Запустив код выше получим такой результат:

python break statement, ключевое слово break в Python