ПРОГРАММИРОВАНИЕ

 

 

 

Язык программирования Python.

Язык программирования Python.

Python является простым и, в то же время, мощным интерпретируемым объектно-ориентированным языком программирования. Он предоставляет структуры данных высокого уровня, имеет изящный синтаксис и использует динамический контроль типов, что делает его идеальным языком для быстрого написания различных приложений, работающих на большинстве распространенных платформ. Книга содержит вводное руководство, которое может служить учебником для начинающих, и справочный материал с подробным описанием грамматики языка, встроенных возможностей и возможностей, предоставляемых модулями стандартной библиотеки. Описание охватывает наиболее распространенные версии Python: от 1.5.2 до 2.0.

СКАЧАТЬ 1,1 Mb




Rambler's Top100

СОДЕРЖАНИЕ


I Вводное руководство ..............................................................................................................15
1 Разжигая Ваш аппетит ............................................................................................................17
2 Использование интерпретатора ..............................................................................................19
2.1 Вызов интерпретатора......................................................................................................... 19
2.1.1 Передача аргументов........................................................................................................ 20
2.1.2 Интерактивный режим..................................................................................................... 20
2.2 Интерпретатор и его среда................................................................................................... 21
2.2.1 Обработка ошибок............................................................................................................ 21
2.2.2 Исполняемые файлы......................................................................................................... 21
2.2.3 Инициализация при запуске в интерактивном режиме .................................................... 21
3 Неформальное введение в Python........................................................................................... 23
3.1 Использование интерпретатора Python в качестве калькулятора......................................... 23
3.1.1 Числа ............................................................................................................................... 23
3.1.2 Строки ............................................................................................................................. 26
3.1.3 Строки Unicode ................................................................................................................ 30
3.1.4 Списки ............................................................................................................................. 32
3.2 Первые шаги к программированию .................................................................................... 34
4 Средства управления логикой ................................................................................................36
4.1 Инструкция if ..................................................................................................................... 36
4.2 Инструкция for ................................................................................................................... 36
4.3 Функции range() и xrange() .................................................................................................. 37
4.4 Инструкции break и continue, ветвь else в циклах ............................................................... 39
4.5 Инструкция pass ................................................................................................................. 39
4.6 Определение функций ........................................................................................................ 40
4.7 Дополнительные возможности в определении функций ..................................................... 42
4.7.1 Значения аргументов по умолчанию ................................................................................ 42
4.7.2 Произвольный набор аргументов ..................................................................................... 43
4.7.3 Именованные аргументы ................................................................................................ . 43
4.7.4 Короткая форма ................................................................................................................ 45
4.7.5 Строки документации ...................................................................................................... 45
4.7.6 Вызов функций ................................................................................................................ 46
5 Структуры данных.................................................................................................................. 47
5.1 Подробнее о списках ........................................................................................................... 47
5.1.1 Стеки ................................................................................................................................ 48
5.1.2 Очереди ............................................................................................................................ 48
5.2 Средства функционального программирования .................................................................. 49
5.3 Дополнительные возможности при конструировании списков ........................................... 51
5.4 Инструкция del ................................................................................................................... 52
5.5 Кортежи .............................................................................................................................. 53
5.6 Словари .............................................................................................................................. 55
5.7 Подробнее об условиях ....................................................................................................... 56
5.8 Сравнение последовательностей ......................................................................................... 57
6 Модули................................................................................................................................... 58
6.1 Создание и использование модулей .................................................................................... 58
6.2 Поиск модулей .................................................................................................................... 61
6.3 “Компилированные” файлы ................................................................................................ 61
6.4 Стандартные модули ........................................................................................................... 62
6.5 Функция dir() ....................................................................................................................... 63
6.6 Пакеты ................................................................................................................................ 64
6.6.1 Импортирование всего содержимого пакета (модуля) ...................................................... 66
6.6.2 Связи между модулями пакета ......................................................................................... 67
7 Ввод/вывод .............................................................................................................................68
7.1 Форматированный вывод .................................................................................................... 68
7.2 Чтение и запись файлов ...................................................................................................... 72
7.2.1 Методы объектов-файлов ................................................................................................. 73
7.2.2 Модуль pickle ................................................................................................................... 74
8 Ошибки и исключения........................................................................................................... 76
8.1 Синтаксические ошибки ..................................................................................................... 76
8.2 Исключения ........................................................................................................................ 76
8.3 Обработка исключений ....................................................................................................... 77
8.4 Генерация исключений ....................................................................................................... 80
8.5 Исключения, определяемые пользователем ......................................................................... 80
8.6 “Страхование” от ошибок ................................................................................................... 80
9 Классы.................................................................................................................................... 82
9.1 Несколько слов о терминологии ......................................................................................... 82
9.2 Области видимости и пространства имен . ......................................................................... 83
9.3 Первый взгляд на классы .................................................................................................... 84
9.3.1 Синтаксис определения класса ......................................................................................... 85
9.3.2 Объекты-классы ............................................................................................................... 85
9.3.3 Объекты-экземпляры ........................................................................................................ 86
9.3.4 Методы экземпляров классов ........................................................................................... 87
9.4 Выборочные замечания ....................................................................................................... 88
9.5 Наследование ...................................................................................................................... 90
9.6 Частные атрибуты ............................................................................................................... 91
9.7 Примеры использования классов ........................................................................................ 92
9.7.1 Экземпляры классов в качестве исключений ................................................................... 92
9.7.2 Классы-помощники ......................................................................................................... 94
9.7.3 Множества ....................................................................................................................... 95
9.7.4 Контроль доступа к атрибутам ......................................................................................... 98

II Встроенные возможности языка............................................................................................. 99
10 Синтаксис и семантика....................................................................................................... 102
10.1 Структура строк программы ............................................................................................ 102
10.1.1 Логические и физические строки ................................................................................. 102
10.1.2 Отступы ....................................................................................................................... 103
10.2 Выражения ...................................................................................................................... 104
10.2.1 Атомы .......................................................................................................................... 105
10.2.2 Первичные выражения ................................................................................................. 106
10.2.3 Арифметические и битовые операторы ........................................................................ 108
10.2.4 Условные операторы .................................................................................................... 108
10.2.5 Истинность ................................................................................................................... 110
10.2.6 Логические операторы .................................................................................................. 110
10.2.7 Оператор lambda ........................................................................................................... 111
10.2.8 Списки выражений ....................................................................................................... 111
10.2.9 Сводная таблица приоритетов ...................................................................................... 112
10.3 Простые инструкции ....................................................................................................... 112
10.3.1 Инструкции-выражения ................................................................................................ 113
10.3.2 Присваивание ............................................................................................................... 113
10.3.3 Инструкция del ............................................................................................................. 115
10.3.4 Пустая инструкция ....................................................................................................... 115
10.3.5 Инструкция print ........................................................................................................... 115
10.3.6 Инструкция break ......................................................................................................... 116
10.3.7 Инструкция continue ..................................................................................................... 116
10.3.8 Инструкция return ......................................................................................................... 117
10.3.9 Инструкция global ......................................................................................................... 117
10.3.10 Инструкция import ...................................................................................................... 117
10.3.11 Инструкция exec ......................................................................................................... 119
10.3.12 Отладочные утверждения ........................................................................................... 120
10.3.13 Генерация исключений ............................................................................................... 120
10.4 Составные инструкции ................................................................................................... 121
10.4.1 Инструкция if ............................................................................................................... 122
10.4.2 Цикл while .................................................................................................................... 122
10.4.3 Цикл for ........................................................................................................................ 123
10.4.4 Инструкция try ............................................................................................................. 124
10.4.5 Определение функций ................................................................................................. 125
10.4.6 Определение класса ..................................................................................................... 128
10.5 Пространства имен ......................................................................................................... 128
11 Встроенные типы данных .................................................................................................. 131
11.1 Числовые типы ............................................................................................................... 131
11.1.1 Целые и длинные целые числа ..................................................................................... 132
11.1.2 Вещественные числа .................................................................................................... 132
11.1.3 Комплексные числа ...................................................................................................... 133
11.1.4 Арифметические операторы ......................................................................................... 133
11.1.5 Битовые операции над целыми числами ....................................................................... 134
11.2 Последовательности ........................................................................................................ 135
11.2.1 Строки .......................................................................................................................... 136
11.2.2 Строки Unicode ............................................................................................................. 143
11.2.3 Кортежи ........................................................................................................................ 144
11.2.4 Объекты xrange ............................................................................................................. 144
11.2.5 Объекты buffer .............................................................................................................. 145
11.2.6 Изменяемые последовательности ................................................................................. 145
11.3 Отображения ................................................................................................................... 147
11.4 Объекты, поддерживающие вызов ................................................................................... 148
11.4.1 Функции, определенные пользователем ....................................................................... 149
11.4.2 Методы, определенные пользователем ......................................................................... 149
11.4.3 Встроенные функции и методы .................................................................................... 150
11.4.4 Классы .......................................................................................................................... 151
11.4.5 Экземпляры классов ..................................................................................................... 151
11.5 Модули ........................................................................................................................... 151
11.6 Классы и экземпляры классов ......................................................................................... 152
11.6.1 Классы .......................................................................................................................... 152
11.6.2 Экземпляры классов ..................................................................................................... 152
11.6.3 Специальные методы ................................................................................................... 153
11.7 Файловые объекты .......................................................................................................... 163
11.8 Вспомогательные объекты .............................................................................................. 165
11.8.1 Пустой объект .............................................................................................................. 165
11.8.2 Объекты типа ............................................................................................................... 165
11.8.3 Представление расширенной записи среза ................................................................... 166
11.9 Детали реализации .......................................................................................................... 166
11.9.1 Объекты кода ............................................................................................................... 166
11.9.2 Кадр стека .................................................................................................................... 168
11.9.3 Объекты traceback ........................................................................................................ 169
12 Встроенные функции ......................................................................................................... 170
13 Встроенные классы исключений ........................................................................................ 182

III Библиотека стандартных модулей ...................................................................................... 187
14 Конфигурационные модули ............................................................................................... 190
14.1 site — общая конфигурация ............................................................................................. 190
14.2 user — конфигурация пользователя ................................................................................. 191
15 Служебные модули ............................................................................................................. 192
15.1 sys — характерные для системы параметры и функции ................................................... 192
15.2 gc — управление “сборщиком мусора” ............................................................................ 198
15.3 atexit — выполнение действий при окончании работы программы .................................. 200
15.4 types — имена для всех встроенных типов ...................................................................... 201
15.5 operator — операторы в виде функций ............................................................................ 204
15.6 traceback — модуль для работы с объектами traceback ..................................................... 208
15.7 imp — доступ к операциям, производимым инструкцией import ..................................... 211
15.8 pprint — представление и вывод данных в более привлекательном виде ......................... 212
15.9 repr — альтернативная реализация функции repr() .......................................................... 215
16 Работа со строками ............................................................................................................ 217
16.1 string — наиболее распространенные операции над строками ......................................... 217
16.2 re — операции с регулярными выражениями .................................................................. 220
16.2.1 Синтаксис регулярных выражений ............................................................................... 220
16.2.2 Сопоставление в сравнении с поиском ......................................................................... 225
16.2.3 Функции и константы, определенные в модуле ............................................................ 225
16.2.4 Объекты, представляющие регулярные выражения ....................................................... 228
16.2.5 Объекты, представляющие результат сопоставления .................................................... 229
16.3 StringIO и cStringIO — работа со строками как с файловыми объектами .......................... 231
16.4 codecs — регистрация кодеров и работа с ними .............................................................. 232
17 Средства интернационализации ......................................................................................... 236
17.1 locale — использование национальных особенностей ...................................................... 236
17.2 gettext — выдача сообщений на родном языке ................................................................. 240
17.2.1 Интерфейс GNU gettext ................................................................................................. 240
17.2.2 Интерфейс, основанный на классах .............................................................................. 241
17.2.3 Изготовление каталога переведенных сообщений ......................................................... 244
18 Математический аппарат .................................................................................................... 245
18.1 math — математические функции для работы с вещественными числами ....................... 245
18.2 cmath — математические функции для работы с комплексными числами ....................... 247
18.3 random — псевдослучайные числа с различными распределениями ................................ 249
18.4 whrandom — генератор псевдослучайных чисел .............................................................. 250
18.5 bisect — поддержание последовательностей в сортированном состоянии ....................... 251
18.6 array — эффективные массивы чисел .............................................................................. 252
19 Интерфейсные классы к встроенным типам ....................................................................... 255
19.1 UserString — интерфейсный класс для создания строковых объектов............................... 255
19.2 UserList — интерфейсный класс для создания последовательностей ............................... 256
19.3 UserDict — интерфейсный класс для создания отображений .......................................... 257
20 Сохранение и копирование объектов ................................................................................. 258
20.1 pickle и cPickle — представление объектов в виде последовательности байтов .............. 258
20.2 shelve — сохранение объектов в базе данных в стиле DBM ............................................ 262
20.3 marshal — байт-компилированное представление объектов ............................................ 263
20.4 struct — преобразование объектов в структуры языка C ................................................. 264
21 Доступ к средствам, предоставляемым операционной системой ........................................ 266
21.1 os — основные службы операционной системы .............................................................. 267
21.1.1 Параметры процесса ..................................................................................................... 267
21.1.2 Создание файловых объектов ....................................................................................... 269
21.1.3 Операции с файловыми дескрипторами ....................................................................... 270
21.1.4 Файлы и каталоги ......................................................................................................... 273
21.1.5 Управление процессами ............................................................................................... 276
21.1.6 Различная системная информация ................................................................................ 279
21.2 os.path — работа с именами путей .................................................................................. 280
21.3 stat — интерпретация os.stat() ......................................................................................... 283
21.4 statvfs — интерпретация os.statvfs() ................................................................................. 285
21.5 filecmp — сравнение файлов и каталогов ........................................................................ 286
21.6 popen2 — доступ к потокам ввода/вывода дочерних процессов ...................................... 288
21.7 time — определение и обработка времени ....................................................................... 289
21.8 sched — планирование задач ........................................................................................... 294
21.9 getpass — запрос пароля и определение имени пользователя .......................................... 295
21.10getopt — обработка опций в командной строке .............................................................. 296
21.11tempfile — создание временных файлов .......................................................................... 298
21.12errno — символические имена стандартных системных ошибок ..................................... 299
21.13glob — раскрытие шаблона имен путей .......................................................................... 302
21.14fnmatch — сопоставление имен файлов с шаблоном ...................................................... 303
21.15shutil — операции над файлами высокого уровня ........................................................... 304
21.16signal — обработка асинхронных событий ...................................................................... 305
21.17socket — сетевой интерфейс низкого уровня .................................................................. 307
21.18select — ожидание завершения ввода/вывода ................................................................. 313
21.19mmap — отображение файлов в память .......................................................................... 315
22 Средства организации многопоточных программ ............................................................... 318
22.1 thread — создание нескольких потоков и управление ими .............................................. 318
22.2 threading — средства высокого уровня организации потоков .......................................... 320
22.2.1 Объекты, реализующие блокировку ............................................................................. 321
22.2.2 Условия ........................................................................................................................ 321
22.2.3 Семафоры ..................................................................................................................... 323
22.2.4 События ....................................................................................................................... 323
22.2.5 Объекты, представляющие потоки ............................................................................... 324
22.3 Queue — синхронизированные очереди .......................................................................... 325
23 Работа с базами данных ..................................................................................................... 327
23.1 Интерфейс к базам данных в стиле DBM ........................................................................ 327
23.1.1 Общая для всех модулей часть интерфейса ................................................................... 328
23.1.2 Дополнительные методы объектов, возвращаемых функцией dbhash.open() ................. 329
23.1.3 Дополнительные методы объектов, возвращаемых функцией gdbm.open() ................... 329
23.2 whichdb — определение формата файла базы данных ...................................................... 330
23.3 bsddb — интерфейс к библиотеке баз данных BSD .......................................................... 330
24 Сжатие данных ................................................................................................................... 333
24.1 zlib — алгоритм сжатия, совместимый с gzip ................................................................... 333
24.2 gzip — работа с файлами, сжатыми программой gzip ....................................................... 336
24.3 zipfile — работа с zip-архивами ........................................................................................ 336
25 Отладка и оптимизация кода на языке Python .................................................................... 340
25.1 Отладчик кода на языке Python ....................................................................................... 340
25.1.1 Функции запуска отладчика ......................................................................................... 341
25.1.2 Команды отладчика ...................................................................................................... 342
25.2 Замер производительности .............................................................................................. 345
25.2.1 Введение ....................................................................................................................... 345
25.2.2 profile — замер производительности ............................................................................. 347
25.2.3 pstats — обработка статистических данных и вывод отчетов ........................................ 348
26 Выполнение в защищенном режиме ................................................................................... 350
26.1 rexec — основные средства настройки защищенного режима .......................................... 351
26.2 Bastion — ограничение доступа к экземплярам классов ................................................... 354
27 Поддержка протоколов Internet ........................................................................................... 355
27.1 cgi — протокол CGI ......................................................................................................... 355
27.1.1 Введение ...................................................................................................................... 355
27.1.2 Использование модуля cgi ............................................................................................ 356
27.1.3 Дополнительные возможности модуля ......................................................................... 359
27.1.4 Вопросы безопасности ................................................................................................. 361
27.1.5 Установка CGI-программы ........................................................................................... 361
27.1.6 Отладка ........................................................................................................................ 362
27.2 urllib — чтение произвольных ресурсов по URL .............................................................. 363
27.3 urlparse — операции над URL .......................................................................................... 367
28 Поддержка форматов, используемых в Internet ................................................................... 369
28.1 rfc822 — обработка заголовков электронных писем ........................................................ 369
28.2 mimetools — обработка сообщений в формате MIME ...................................................... 373
28.3 MimeWriter — средства для записи в формате MIME ...................................................... 374
28.4 multifile — чтение сообщений, состоящих из нескольких частей ..................................... 376
28.5 xdrlib — представление данных в формате XDR .............................................................. 378
29 Средства работы с языками структурной разметки ............................................................. 383
29.1 sgmllib — обработка SGML-документов ........................................................................... 383
29.2 htmllib — обработка HTML-документов .......................................................................... 386
29.3 htmlentitydefs — определения сущностей HTML ............................................................. 388
29.4 xml.parsers.expat — быстрая обработка XML-документов с помощью библиотеки Expat.. 388
29.5 xml.sax — SAX2 интерфейс к синтаксическим анализаторам XML- документов ............. 392
29.6 xml.sax.handler — базовые классы для обработчиков SAX-событий ................................. 394
29.6.1 Интерфейс класса ContentHandler ................................................................................. 395
29.6.2 Интерфейс класса DTDHandler ..................................................................................... 397
29.6.3 Интерфейс класса ErrorHandler ..................................................................................... 397
29.6.4 Интерфейс класса EntityResolver ................................................................................... 398
29.7 xml.sax.saxutils — вспомогательные средства для приложений, использующих SAX ....... 398
29.8 xml.sax.xmlreader — интерфейс объектов, реализующих чтение и
синтаксический анализ XML-документов ............................................................................... 399
29.8.1 Интерфейс класса XMLReader ...................................................................................... 400
29.8.2 Интерфейс класса IncrementalParser .............................................................................. 401
29.8.3 Интерфейс класса Locator ............................................................................................. 402
29.8.4 Экземпляры класса InputSource ..................................................................................... 402
29.8.5 Экземпляры классов AttributesImpl и AttributesNSImpl ................................................... 403
29.9 xmllib — обработка XML-документов .............................................................................. 404
30 Разное ................................................................................................................................ 409
30.1 fileinput — перебор строк из нескольких входных потоков .............................................. 409
30.2 ConfigParser — чтение конфигурационных файлов ......................................................... 412
30.3 shlex — простой синтаксический анализатор .................................................................. 415
30.4 cmd — создание командных интерпретаторов ................................................................. 417
30.5 calendar — функции для работы с календарем ................................................................. 419

Приложения ............................................................................................................................ 423
A Параметры командной строки интерпретатора и переменные окружения ........................... 425
B Грамматика языка ................................................................................................................ 428
Указатель модулей .................................................................................................................. 433
Предметный указатель ............................................................................................................ 435


По всем вопросам, замечаниям и предложениям обращаться по этому адресу mister-grey@narod.ru

Copyright® Grey 2004-2007

Hosted by uCoz