Введение в Python (Красота) - страница 14

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


>1 | money = 10 # создаем переменную money и присваиваем ей значение 10

>2 | while money > 0: # Запускаем цикл

>3 | print "We have %s dollars" % money

> | # Мы внутри цикла. Печатаем сообщение

>4 | money -= 1

> | # Все еще внутри цикла. Уменьшаем на один переменную money

>5 | print "No more money :( Time to work now"

> | # Мы вне цикла. Печатаем сообщение


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



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

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

>1 | num = 1

>2 | while num < 10:

>3 | print "Hello"

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

Цикл for в Python:

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

> 1 | for item in sequence:

> 2 | statement(s)

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

> 1 | word = "child" # строка word

> 2 | bag = ["knife", "wallet", "pen", "notebook"] # список bag

> 3 | countries = {"Swiss":"Bern", "Ukraine":"Kiev",

"italy":"Rome", "Australia":"Canberra", "Japan":"Tokyo"} # словарь countries

> 4 |

> 5 | for letter in word:

> 6 | print letter # печатаем по букве из word

> 7 |

> 8 | for item in bag:

> 9 | print item # печатаем по элементу из bag

>10 |

>11 | for county in countries:

>12 | # По умолчанию цикл for проходит по ключам словарей

>13 | # Но нам не составит труда получить значения ключей

>14 | print "The capital of %s is %s" % (country, countries[country])


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



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

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