Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач

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

Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач, М. Задка, М. Левис, С. Монтаро, Э.С. Реймонд, А.М. Кучлинг, М.-А. Лембург, К.-П. Йи, Д. Ксиллаг, Х.Г. Петрилли, Б.А. Варсав, Дж.К. Ахлстром, Дж. Роскинд, Н. Шеменор, С. Мулендер.

Язык программирования Python. / 2001 — 454 c.

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

© Stichting Mathematisch Centrum, 1990–1995

© Corporation for National Research Initiatives, 1995–2000

© BeOpen.com, 2000

© Д.С. Откидач, 2001

Эта книга не была издана и находится в свободном доступе. Разрешение на публикацию книги здесь дал переводчик и соавтор Д.С. Откидач.


Дорогой читатель!

Вашему вниманию предлагается книга "Язык программирования Python". Книга эта — не просто перевод английского учебника. Автор перевода проделал огромную работу по проверке примеров и упражнений, добавил в книгу немало других материалов.

Появление данной книги знаменует новый важный этап. Это признание того, что Python стал распространенным языком программирования, что его пользователи нуждаются в современной литературе на русском языке. В свою очередь появление книги будет способствовать еще большей популярности языка.

Python — это свободный интерпретируемый объектно-ориентированный расширяемый встраиваемый язык программирования очень высокого уровня.

Python — язык универсальный, он широко используется во всем мире для самых разных целей — базы данных и обработка текстов, встраивание интерпретатора в игры, программирование GUI и быстрое создание прототипов (RAD). И, конечно же, Python используется для программирования Internet и Web приложений — серверных (CGI), клиентских (роботы), Web-серверов и серверов приложений. Python обладает богатой стандартной библиотекой, и еще более богатым набором модулей, написанных третьими лицами. Python и приложения, написанные на нем, используют самые известные и крупные фирмы — IBM, Yahoo!, Google.com, Hewlett Packard, Infoseek, NASA, Red Hat, CBS MarketWatch, Microsoft.

На этом языке написаны:

Python используется и в России. Многие компании используют его для внутренних нужд; на этом языке пишутся утилиты, фильтры, резидентные программы, GUI и Web-сайты. На некоторых сайтах все CGI-программы написаны на языке Python (сайт Фонда "Общественное мнение" www.fom.ru), другие используют системы публикации, написанные на языке Python (Русский Журнал, www.russ.ru). Находит использование и Zope. На нем сделаны сайты: Каталог Full.RU (www.full.ru), Банк МЕНАТЕП СПб (www.menatep.spb.ru), сайт красноярской компании Интербит (www.interbit.ru) и другие.

Существует русскоязычная группа пользователей Python и Zope, сайт которой (zope.net.ru) также построен на технологии Zope. Группа имеет список рассылки, в котором обсуждаются вопросы и решаются проблемы, связанные с использованием Python и Zope.

Олег Бройтман

Появление этой книги стало возможным благодаря всесторонней поддержке окружающих меня друзей. Особую признательность хотелось бы выразить моей жене Катерине — за редакторскую правку и проявленное терпение, Олегу Бройтману — за ценные замечания и прекрасное предисловие и всей русскоязычной группе пользователей Python и Zope — за полезные обсуждения приведенных здесь примеров. В списке рассылки группы Вы сможете высказать свои замечания и предложения, а также получить информацию, связанную с обновлением книги.

Денис Откидач

Оглавление

BEOPEN.COM TERMS AND CONDITIONS FOR PYTHON 2.0
Часть I: Вводное руководство
    1. Разжигая Ваш аппетит
    2. Использование интерпретатора
        2.1. Вызов интерпретатора
            2.1.1. Передача аргументов
            2.1.2. Интерактивный режим
        2.2. Интерпретатор и его среда
            2.2.1. Обработка ошибок
            2.2.2. Исполняемые файлы
            2.2.3. Инициализация при запуске в интерактивном режиме
    3. Неформальное введение в Python
        3.1. Использование интерпретатора Python в качестве калькулятора
            3.1.1. Числа
            3.1.2. Строки
            3.1.3. Строки Unicode
            3.1.4. Списки
        3.2. Первые шаги к программированию
    4. Средства управления логикой
        4.1. Инструкция if
        4.2. Инструкция for
        4.3. Функции range() и xrange()
        4.4. Инструкции break и continue, ветвь else в циклах
        4.5. Инструкция pass
        4.6. Определение функций
        4.7. Дополнительные возможности в определении функций
            4.7.1. Значения аргументов по умолчанию
            4.7.2. Произвольный набор аргументов
            4.7.3. Именованные аргументы
            4.7.4. Короткая форма
            4.7.5. Строки документации
            4.7.6. Вызов функций
    5. Структуры данных
        5.1. Подробнее о списках
            5.1.1. Стеки
            5.1.2. Очереди
        5.2. Средства функционального программирования
        5.3. Дополнительные возможности при конструировании списков
        5.4. Инструкция del
        5.5. Кортежи
        5.6. Словари
        5.7. Подробнее об условиях
        5.8. Сравнение последовательностей
    6. Модули
        6.1. Создание и использование модулей
        6.2. Поиск модулей
        6.3. "Компилированные" файлы
        6.4. Стандартные модули
        6.5. Функция dir()
        6.6. Пакеты
            6.6.1. Импортирование всего содержимого пакета (модуля)
            6.6.2. Связи между модулями пакета
    7. Ввод/вывод
        7.1. Форматированный вывод
        7.2. Чтение и запись файлов
            7.2.1. Методы объектов-файлов
            7.2.2. Модуль pickle
    8. Ошибки и исключения
        8.1. Синтаксические ошибки
        8.2. Исключения
        8.3. Обработка исключений
        8.4. Генерация исключений
        8.5. Исключения, определяемые пользователем
        8.6. "Страхование" от ошибок
    9. Классы
        9.1. Несколько слов о терминологии
        9.2. Области видимости и пространства имен
        9.3. Первый взгляд на классы
            9.3.1. Синтаксис определения класса
            9.3.2. Объекты-классы
            9.3.3. Объекты-экземпляры
            9.3.4. Методы экземпляров классов
        9.4. Выборочные замечания
        9.5. Наследование
        9.6. Частные атрибуты
        9.7. Примеры использования классов
            9.7.1. Экземпляры классов в качестве исключений
            9.7.2. Классы-помощники
            9.7.3. Множества
            9.7.4. Контроль доступа к атрибутам
Часть II: Встроенные возможности языка
    10. Синтаксис и семантика
        10.1. Структура строк программы
            10.1.1. Логические и физические строки
            10.1.2. Отступы
        10.2. Выражения
            10.2.1. Атомы
            10.2.2. Первичные выражения
            10.2.3. Арифметические и битовые операторы
            10.2.4. Условные операторы
            10.2.5. Истинность
            10.2.6. Логические операторы
            10.2.7. Оператор lambda
            10.2.8. Списки выражений
            10.2.9. Сводная таблица приоритетов
        10.3. Простые инструкции
            10.3.1. Инструкции-выражения
            10.3.2. Присваивание
            10.3.3. Инструкция del
            10.3.4. Пустая инструкция
            10.3.5. Инструкция print
            10.3.6. Инструкция break
            10.3.7. Инструкция continue
            10.3.8. Инструкция return
            10.3.9. Инструкция global
            10.3.10. Инструкция import
            10.3.11. Инструкция exec
            10.3.12. Отладочные утверждения
            10.3.13. Генерация исключений
        10.4. Составные инструкции
            10.4.1. Инструкция if
            10.4.2. Цикл while
            10.4.3. Цикл for
            10.4.4. Инструкция try
            10.4.5. Определение функций
            10.4.6. Определение класса
        10.5. Пространства имен
    11. Встроенные типы данных
        11.1. Числовые типы
            11.1.1. Целые и длинные целые числа
            11.1.2. Вещественные числа
            11.1.3. Комплексные числа
            11.1.4. Арифметические операторы
            11.1.5. Битовые операции над целыми числами
        11.2. Последовательности
            11.2.1. Строки
            11.2.2. Строки Unicode
            11.2.3. Кортежи
            11.2.4. Объекты xrange
            11.2.5. Объекты buffer
            11.2.6. Изменяемые последовательности
        11.3. Отображения
        11.4. Объекты, поддерживающие вызов
            11.4.1. Функции, определенные пользователем
            11.4.2. Методы, определенные пользователем
            11.4.3. Встроенные функции и методы
            11.4.4. Классы
            11.4.5. Экземпляры классов
        11.5. Модули
        11.6. Классы и экземпляры классов
            11.6.1. Классы
            11.6.2. Экземпляры классов
            11.6.3. Специальные методы
        11.7. Файловые объекты
        11.8. Вспомогательные объекты
            11.8.1. Пустой объект
            11.8.2. Объекты типа
            11.8.3. Представление расширенной записи среза
        11.9. Детали реализации
            11.9.1. Объекты кода
            11.9.2. Кадр стека
            11.9.3. Объекты traceback
    12. Встроенные функции
    13. Встроенные классы исключений
Часть III: Библиотека стандартных модулей
    14. Конфигурационные модули
        14.1. site — общая конфигурация
        14.2. user — конфигурация пользователя
    15. Служебные модули
        15.1. sys — характерные для системы параметры и функции
        15.2. gc — управление "сборщиком мусора"
        15.3. atexit — выполнение действий при окончании работы программы
        15.4. types — имена для всех встроенных типов
        15.5. operator — операторы в виде функций
        15.6. traceback — модуль для работы с объектами traceback
        15.7. imp — доступ к операциям, производимым инструкцией import
        15.8. pprint — представление и вывод данных в более привлекательном виде
        15.9. repr — альтернативная реализация функции repr()
    16. Работа со строками
        16.1. string — наиболее распространенные операции над строками
        16.2. re — операции с регулярными выражениями
            16.2.1. Синтаксис регулярных выражений
            16.2.2. Сопоставление в сравнении с поиском
            16.2.3. Функции и константы, определенные в модуле
            16.2.4. Объекты, представляющие регулярные выражения
            16.2.5. Объекты, представляющие результат сопоставления
        16.3. StringIO и cStringIO — работа со строками как с файловыми объектами
        16.4. codecs — регистрация кодеков и работа с ними
    17. Средства интернационализации
        17.1. locale — использование национальных особенностей
        17.2. gettext — выдача сообщений на родном языке
            17.2.1. Интерфейс GNU gettext
            17.2.2. Интерфейс, основанный на классах
            17.2.3. Изготовление каталога переведенных сообщений
    18. Математический аппарат
        18.1. math — математические функции для работы с вещественными числами
        18.2. cmath — математические функции для работы с комплексными числами
        18.3. random — псевдослучайные числа с различными распределениями
        18.4. whrandom — генератор псевдослучайных чисел
        18.5. bisect — поддержание последовательностей в сортированном состоянии
        18.6. array — эффективные массивы чисел
    19. Интерфейсные классы к встроенным типам
        19.1. UserString — интерфейсный класс для создания строковых объектов
        19.2. UserList — интерфейсный класс для создания последовательностей
        19.3. UserDict — интерфейсный класс для создания отображений
    20. Сохранение и копирование объектов
        20.1. pickle и cPickle — представление объектов в виде последовательности байтов
        20.2. shelve — сохранение объектов в базе данных в стиле DBM
        20.3. marshal — байт-компилированное представление объектов
        20.4. struct — преобразование объектов в структуры языка C
    21. Доступ к средствам, предоставляемым операционной системой
        21.1. os — основные службы операционной системы
            21.1.1. Параметры процесса
            21.1.2. Создание файловых объектов
            21.1.3. Операции с файловыми дескрипторами
            21.1.4. Файлы и каталоги
            21.1.5. Управление процессами
            21.1.6. Различная системная информация
        21.2. os.path — работа с именами путей
        21.3. stat — интерпретация os.stat()
        21.4. statvfs — интерпретация os.statvfs()
        21.5. filecmp — сравнение файлов и каталогов
        21.6. popen2 — доступ к потокам ввода/вывода дочерних процессов
        21.7. time — определение и обработка времени
        21.8. sched — планирование задач
        21.9. getpass — запрос пароля и определение имени пользователя
        21.10. getopt — обработка опций в командной строке
        21.11. tempfile — создание временных файлов
        21.12. errno — символические имена стандартных системных ошибок
        21.13. glob — раскрытие шаблона имен путей
        21.14. fnmatch — сопоставление имен файлов с шаблоном
        21.15. shutil — операции над файлами высокого уровня
        21.16. signal — обработка асинхронных событий
        21.17. socket — сетевой интерфейс низкого уровня
        21.18. select — ожидание завершения ввода/вывода
        21.19. mmap — отображение файлов в память
    22. Средства организации многопоточных программ
        22.1. thread — создание нескольких потоков и управление ими
        22.2. threading — средства высокого уровня организации потоков
            22.2.1. Объекты, реализующие блокировку
            22.2.2. Условия
            22.2.3. Семафоры
            22.2.4. События
            22.2.5. Объекты, представляющие потоки
        22.3. Queue — синхронизированные очереди
    23. Работа с базами данных
        23.1. Интерфейс к базам данных в стиле DBM
            23.1.1. Общая для всех модулей часть интерфейса
            23.1.2. Дополнительные методы объектов, возвращаемых функцией dbhash.open()
            23.1.3. Дополнительные методы объектов, возвращаемых функцией gdbm.open()
        23.2. whichdb — определение формата файла базы данных
        23.3. bsddb — интерфейс к библиотеке баз данных BSD
    24. Сжатие данных
        24.1. zlib — алгоритм сжатия, совместимый с gzip
        24.2. gzip — работа с файлами, сжатыми программой gzip
        24.3. zipfile — работа с zip-архивами
    25. Отладка и оптимизация кода на языке Python
        25.1. Отладчик кода на языке Python
            25.1.1. Функции запуска отладчика
            25.1.2. Команды отладчика
        25.2. Замер производительности
            25.2.1. Введение
            25.2.2. profile — замер производительности
            25.2.3. pstats — обработка статистических данных и вывод отчетов
    26. Выполнение в защищенном режиме
        26.1. rexec — основные средства настройки защищенного режима
        26.2. Bastion — ограничение доступа к экземплярам классов
    27. Поддержка протоколов Internet
        27.1. cgi — протокол CGI
            27.1.1. Введение
            27.1.2. Использование модуля cgi
            27.1.3. Дополнительные возможности модуля
            27.1.4. Вопросы безопасности
            27.1.5. Установка CGI-программы
            27.1.6. Отладка
        27.2. urllib — чтение произвольных ресурсов по URL
        27.3. urlparse — операции над URL
    28. Поддержка форматов, используемых в Internet
        28.1. rfc822 — обработка заголовков электронных писем
        28.2. mimetools — обработка сообщений в формате MIME
        28.3. MimeWriter — средства для записи в формате MIME
        28.4. multifile — чтение сообщений, состоящих из нескольких частей
        28.5. xdrlib — представление данных в формате XDR
    29. Средства работы с языками структурной разметки
        29.1. sgmllib — обработка SGML-документов
        29.2. htmllib — обработка HTML-документов
        29.3. htmlentitydefs — определения сущностей HTML
        29.4. xml.parsers.expat—быстрая обработка XML-документов с помощью библиотеки Expat
        29.5. xml.sax — SAX2 интерфейс к синтаксическим анализаторам XML-документов
        29.6. xml.sax.handler — базовые классы для обработчиков SAX-событий
            29.6.1. Интерфейс класса ContentHandler
            29.6.2. Интерфейс класса DTDHandler
            29.6.3. Интерфейс класса ErrorHandler
            29.6.4. Интерфейс класса EntityResolver
        29.7. xml.sax.saxutils — вспомогательные средства для приложений, использующих SAX
        29.8. xml.sax.xmlreader — интерфейс объектов, реализующих чтение и синтаксический анализ XML-документов
            29.8.1. Интерфейс класса XMLReader
            29.8.2. Интерфейс класса IncrementalParser
            29.8.3. Интерфейс класса Locator
            29.8.4. Экземпляры класса InputSource
            29.8.5. Экземпляры классов AttributesImpl и AttributesNSImpl
        29.9. xmllib — обработка XML-документов
    30. Разное
        30.1. fileinput — перебор строк из нескольких входных потоков
        30.2. ConfigParser — чтение конфигурационных файлов
        30.3. shlex — простой синтаксический анализатор
        30.4. cmd — создание командных интерпретаторов
        30.5. calendar — функции для работы с календарем
Приложения
    A. Параметры командной строки интерпретатора и переменные окружения
    B. Грамматика языка

BEOPEN.COM TERMS AND CONDITIONS FOR PYTHON 2.0

BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1

  1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization ("Licensee") accessing and otherwise using this software in source or binary form and its associated documentation ("the Software").
  2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee.
  3. BeOpen is making the Software available to Licensee on an "AS IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
  4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
  5. This License Agreement will automatically terminate upon a material breach of its terms and conditions.
  6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the "BeOpen Python" logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page.
  7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement.

CNRI OPEN SOURCE LICENSE AGREEMENT

Python 1.6 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1012. This Agreement may also be obtained from a proxy server on the Internet using the following URL: http://hdl.handle.net/1895.22/1012.

CWI PERMISSIONS STATEMENT AND DISCLAIMER

Copyright © 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved.

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.