или
>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: