Язык программирования Python (Сузи) - страница 4

При работе с Python в интерактивном режиме как бы вводится одна большая программа, состоящая из последовательных действий. В примере выше использованы операторы присваивания и оператор >print.

Оператор условия и выбора

Разумеется, одними только последовательными действиями в программировании не обойтись, поэтому при написании алгоритмов используется еще и ветвление:

>if a > b:

> c = a

>else:

> c = b

Этот кусок кода на Python интуитивно понятен каждому, кто помнит, что >if по–английски значит «если», а >else — «иначе». Оператор ветвления имеет в данном случае две части, операторы каждой из которых записываются с отступом вправо относительно оператора ветвления. Более общий случай — оператор выбора — можно записать с помощью следующего синтаксиса (пример вычисления знака числа):

>if a < 0:

> s = -1

>elif a == 0:

> s = 0

>else:

> s = 1

Стоит заметить, что >elif — это сокращенный >else if. Без сокращения пришлось бы применять вложенный оператор ветвления:

>if a < 0:

> s = -1

>else:

> if a == 0:

>  s = 0

> else:

>  s = 1

В отличие от оператора >print, оператор >if–else — составной оператор.

Циклы

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

>s = "abcdefghijklmnop"

>while s != "":

> print s

> s = s[1: -1]

Оператор while говорит интерпретатору Python: «пока верно условие цикла, выполнять тело цикла». В языке Python тело цикла выделяется отступом. Каждое исполнение тела цикла будет называться итерацией. В приведенном примере убирается первый и последний символ строки до тех пор, пока не останется пустая строка.

Для большей гибкости при организации циклов применяются операторы >break (прервать) и >continue (продолжить). Первый позволяет прервать цикл, а второй — продолжить цикл, перейдя к следующей итерации (если, конечно, выполняется условие цикла).

Следующий пример читает строки из файла и выводит те, у которых длина больше 5:

>f = open("file.txt", "r")

>while 1:

> l = f.readline()

> if not l:

>  break

> if len(l) > 5:

>  print l,

> f.close()

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

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