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

или >True.

Примечание:

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

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

>for i in range(1, 10):

> for j in range(1, 10):

>  print "%2i" % (i*j),

> print

Здесь циклы >for являются вложенными. Функция >range() порождает список целых чисел из полуоткрытого диапазона >[1, 10). Перед каждой итерацией счетчик цикла получает очередное значение из этого списка. Полуоткрытые диапазоны общеприняты в Python. Считается, что их использование более удобно и вызывает меньше программистских ошибок. Например, >range(len(s)) порождает список индексов для списка >s (в Python–последовательности первый элемент имеет индекс >0). Для красивого вывода таблицы умножения применена операция форматирования >% (для целых чисел тот же символ используется для обозначения операции взятия остатка от деления). Строка форматирования (задается слева) строится почти как строка форматирования для >printf из C.

Функции

Программист может определять собственные функции двумя способами: с помощью оператора >def или прямо в выражении, посредством >lambda. Второй способ (да и вообще работа с функциями) будет рассмотрен подробнее в лекции по функциональному программированию на Python, а здесь следует привести пример определения и вызова функции:

>def cena(rub, kop=0):

> return "%i руб. %i коп." % (rub, kop)


>print cena(8, 50)

>print cena(7)

>print cena(rub=23, kop=70)

В этом примере определена функция двух аргументов (из которых второй имеет значение по умолчанию>0). Вариантов вызова этой функции с конкретными параметрами также несколько. Стоит только заметить, что при вызове функции сначала должны идти позиционные параметры, а затем, именованные. Аргументы со значениями по умолчанию должны следовать после обычных аргументов. Оператор >return возвращает значение функции. Из функции можно возвратить только один объект , но он может быть кортежем из нескольких объектов.

После оператора >def имя >cena оказывается связанным с функциональным объектом.

Исключения

В современных программах передача управления происходит не всегда так гладко, как в описанных выше конструкциях. Для обработки особых ситуаций (таких как деление на ноль или попытка чтения из несуществующего файла) применяется механизм исключений. Лучше всего пояснить синтаксис оператора >try–except следующим примером:

>try:

> res = int(open('a.txt').read())/int(open('c.txt').read())

> print res

>except IOError:

> print "Ошибка ввода–вывода"

>except ZeroDivisionError: