Главная » Статьи » Python

Циклы

История Белоруссии

Третьей необходимой алгоритмической конструкцией является цикл. С помощью цикла можно описать повторяющиеся действия. В Python имеются два вида циклов: цикл ПОКА (выполняется некоторое действие) и цикл ДЛЯ (всех значений последовательности). Следующий пример иллюстрирует цикл ПОКА на Python:

  1. s = "abcdefghijklmnop"
  2. while s != "":
  3.     print s 
  4.     s = s[1:-1]

Оператор while говорит интерпретатору Python: "пока верно условие цикла, выполнять тело цикла". В языке Python тело цикла выделяется отступом. Каждое исполнение тела цикла будет называться итерацией. В приведенном примере убирается первый и последний символ строки до тех пор, пока не останется пустая строка. Для большей гибкости при организации циклов применяются операторы break (прервать) и continue (продолжить). Первый позволяет прервать цикл, а второй - продолжить цикл, перейдя к следующей итерации (если, конечно, выполняется условие цикла). Следующий пример читает строки из файла и выводит те, у которых длина больше 5:

  1. f = open("file.txt", "r")
  2. while 1:
  3.     l = f.readline()
  4.     if not l: 
  5.         break 
  6.     if len(l) > 5: 
  7.         print l, 
  8. f.close()

В этом примере организован бесконечный цикл, который прерывается только при получении из файла пустой строки (l), что обозначает конец файла.

В языке Python логическое значение несет каждый объект: нули, пустые строки и последовательности, специальный объект None и логический литерал False имеют значение "ложь", а прочие объекты значение "истина". Для обозначения истины обычно используется 1 или True.

Примечание:

Литералы True и False для обозначения логических значений появились в Python 2.3.

Цикл ДЛЯ выполняет тело цикла для каждого элемента последовательности. В следующем примере выводится таблица умножения:

  1. for i in range(1, 10):
  2.     for j in range(1, 10):
  3.         print "%2i" % (i*j),
  4.     print
Здесь циклы for являются вложенными. Функция range() порождает список целых чисел из полуоткрытого диапазона [1, 10). Перед каждой итерацией счетчик цикла получает очередное значение из этого списка. Полуоткрытые диапазоны общеприняты в Python. Считается, что их использование более удобно и вызывает меньше программистских ошибок. Например, range(len(s)) порождает список индексов для списка s (в Python- последовательности первый элемент имеет индекс 0). Для красивого вывода таблицы умножения применена операция форматирования % (для целых чисел тот же символ используется для обозначения операции взятия остатка от деления). Строка форматирования (задается слева) строится почти как строка форматирования для printf из C.
Категория: Python | Добавил: Шаке (01.03.2012)
Просмотров: 1853 | Теги: python, for, цикл, While, условие
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
/>meta http-equiv=