وبلاگ بلیان

Программирование на Python

معرفی کتاب «Программирование на Python» نوشتهٔ Лутц М.، منتشرشده توسط نشر Символ-Плюс در سال 2002. این کتاب در فرمت pdf، زبان ru ارائه شده است. «Программирование на Python» در دستهٔ بدون دسته‌بندی قرار دارد.

Перевод С. Маккавеева. Python – это широко распространенный язык программирования, применяемый при решении многих важных задач, диапазон которых простирается от коммерческих сценариев установки Linux и программирования веб-приложений до анимации фильмов и создания спецэффектов. Он доступен на всех ведущих вычислительных платформах, в том числе на основных коммерческих версиях Unix, Linux, Windows и Mac OS. Кроме того, он является языком с открытым исходным кодом. Второе издание самого известного бестселлера по Python, прорецензированное и одобренное Гвидо ван Россумом, создателем Python, представляет собой наиболее полный на сегодняшний день источник для серьезно программирующих на Python. Основное внимание здесь сосредоточено на практическом применении языка. Читатель обнаружит, что одна книга фактически содержит в себе четыре, которые глубоко освещают создание сценариев для Интернета, системное программирование, программирование GUI с использованием Tkinter и интеграцию с C. Кроме того, обсуждаются новые инструменты и приложения: Jython – версия Python, компилируемая в виде байт-кодов Java; расширения Active Scripting и COM; Zope – система веб-приложений с открытым исходным кодом; генераторы кода HTMLgen и SWIG; поддержка потоков; модули CGI и протоколов Интернета. В книге приводится большое количество примеров кода, которые вы сможете использовать при разработке на Python сложных приложений. Прилагается СD для платформ PC, Macintoch и Unix. Оглавление Вступительное слово Предисловие ко второму изданию Издание обновлено в соответствии с Python 2.0 Книга переориентирована на более подготовленную а В книге раскрыты новые темы Книга более ориентирована на примеры Книга более нейтральна в отношении используемых п Вкратце Подробности Где все это находится Глава 1. Знакомство с Python История жизни Python Обязательный список характеристик Где хорош Python? Для чего Python не годится? Часть I. Системные интерфейсы Глава 2. Системные инструменты Зачем здесь нужен Python? Обзор системных сценариев Системные модули Python Источники документации по модулям Постраничный вывод строк документации Знакомство с модулем string Основы операций с файлами Два способа использования программ Руководства по библиотекам Python Коммерческие справочники Модуль sys Платформы и версии Путь для поиска модулей Таблица загруженных модулей Сведения об исключительных ситуациях Другие элементы, экспортируемые модулем sys Модуль os Большие списки os Средства администрирования Константы переносимости Основные инструменты os.path Выполнение команд оболочки из сценариев Другие элементы, экспортируемые модулем os Контекст выполнения сценария Текущий рабочий каталог CWD, файлы и пути для импорта Текущий рабочий каталог и командные строки Аргументы командной строки Переменные окружения оболочки Получение значений переменных оболочки Изменение переменных оболочки Стандартные потоки Переадресация потоков в файлы и программы Переадресация потоков объектам Python Другие варианты переадресации Средства для работы с файлами Встроенные объекты файлов Средства работы с файлами в модуле os Сканеры файлов Представление файлов как списков Средства для работы с каталогами Обход одного каталога Обход деревьев каталогов Сделаем собственный модуль find Глава 3. Системные средства параллельного выполнения Ветвление процессов Комбинация fork/exec Потоки Модуль thread Модуль threading Завершение программ Завершение работы с помощью модуля os Коды состояния завершения Завершение потоков Межпроцессное взаимодействие Каналы Основы анонимных каналов Двунаправленный IPC с помощью каналов Именованные каналы (fifo) Сигналы Запуск программ под Windows Вызов os.spawnv Выполнение командных строк DOS Структура переносимого запуска программ Другие системные средства Глава 4. Более крупные системные примеры, часть 1 Разрезание и соединение файлов Разрезание файлов переносимым способом Соединение файлов переносимым образом Варианты использования Создание веб-страниц со ссылками переадресации Файл шаблона страницы Сценарий генератора страниц Сценарий регрессивного теста Упаковка и распаковка файлов Упаковка файлов «++» Суперклассы иерархии приложения Дружественные пользователю средства для запуска п Клиенты модуля Launcher Запуск программ без настроек окружения Переносимый запуск веб-броузеров Глава 5. Более крупные системные примеры, часть 2 Исправление концов строк в формате DOS Преобразование концов строк в одном файле Преобразование символов конца строки во всех файл Преобразование концов строк в целом дереве Исправление имен файлов DOS Перезапись с помощью os.path.walk Поиск в деревьях каталогов grep и glob в оболочках и Python Сценарии Python для поиска в дереве Visitor: обобщенный обход деревьев Редактирование файлов в деревьях каталогов Глобальная замена в деревьях каталогов Составление списка найденных файлов в деревьях ка Корректировщики, использующие «обходчиков» Корректировка прав доступа к файлам в деревьях Копирование деревьев каталогов Сценарий Python для копирования дерева Переработка копировщика с использованием класса, Удаление деревьев каталогов Переработка удаления для придания общности Сравнение деревьев каталогов Поиск расхождений между каталогами Нахождение различий между деревьями Часть II. Программирование GUI Глава 6. Графические интерфейсы пользователя Темы программирования GUI Варианты разработки GUI в Python Обзор Tkinter Документация Tkinter Расширения Tkinter Структура Tkinter Взбираясь по кривой обучения GUI-программированию «Hello World» в четыре строки (или меньше) Основы кодирования на Tkinter Варианты кодирования в Tkinter Добавление кнопок и обратных вызовов Добавление определяемых пользователем обработчико Добавление нескольких графических элементов Настройка графических элементов с помощью классов Повторно используемые компоненты GUI и классы Завершение начального обучения Соответствие между Python/Tkinter и Tcl/Tk Глава 7. Обзор Tkinter, часть 1 Темы, освещаемые в данной главе Настройка внешнего вида графических элементов Окна верхнего уровня Графические элементы Toplevel и Tk Протоколы окна верхнего уровня Диалоги Стандартные диалоги Модуль Dialog для окон в старом стиле Пользовательские диалоги Привязка событий Message и Entry Message Entry Флажки, переключатели и ползунки Флажки Переключатели Ползунки Три способа выполнения кода GUI Прикрепление к фреймам Независимые окна Запуск программ Изображения Развлечения с кнопками и картинками Глава 8. Обзор Tkinter, часть 2 Меню Меню окон верхнего уровня Меню, основанные на фреймах и кнопках Окна, содержащие меню и панель инструментов Окна списков и полосы прокрутки Программирование окон списков Программирование полос прокрутки Упаковка полос прокрутки Text Программирование графического элемента Text Операции редактирования текста Более сложные операции с тегами в Text Графический элемент Canvas Базовые операции с Canvas Программирование графического элемента Canvas Прокрутка холстов События холстов Сетки Основы работы с сеткой grid в сравнении с pack Сочетание grid с pack Обеспечение расширяемости графических элементов, Создание с помощью grid более крупных таблиц Средства синхронизации, потоки и анимация Использование потоков с GUI Применение метода after Простые технологии анимации Конец экскурсии Запускающие программы PyDemos и PyGadgets Панель запуска PyDemos Панель запуска PyGadgets Глава 9. Более крупные примеры GUI Примеры в других главах Стратегия данной главы Более сложные приемы написания кода GUI GuiMixin: использование общих методов «подмешивае GuiMaker: автоматизация создания меню и панелей и BigGui: программа демонстрации клиента ShellGui: добавление GUI к инструментам командной GuiStreams: перенаправление потоков данных элемен Динамическая перегрузка обработчиков обратного вы Примеры законченных программ PyEdit: программа/объект текстового редактора Запуск PyEdit Исходный код PyEdit PyView: слайд-шоу для графики и заметок Выполнение PyView Исходный код PyView PyDraw: рисование и перемещение графики Выполнение PyDraw Исходный код PyDraw PyClock: графический элемент аналоговых/цифровых Краткий урок геометрии Выполнение PyClock Исходный код PyClock PyToe: графический элемент игры в крестики-нолики Выполнение PyToe Исходный код PyToe (на CD) Что дальше Часть III. Создание сценариев для Интернета Глава 10. Сетевые сценарии Темы, относящиеся к сценариям для Интернета Трубопровод для Интернета Слой сокетов Слой протоколов Библиотечные модули Python для Интернета Программирование сокетов Основы сокетов Обработка нескольких клиентов Ветвление серверов Многопоточные серверы То же с помощью классов: структуры для создания с Мультиплексирование серверов с помощью select Выбор схемы сервера Простой файловый сервер на Python Выполнение файл-сервера и клиентов Добавление графического интерфейса пользователя Глава 11. Сценарии на стороне клиента Передача файлов по Сети FTP: загрузка Python с помощью Python Утилиты FTP get и put Загрузка сайтов (создание зеркальных копий) Загрузка сайтов на сервер Загрузка на сервер вместе с подкаталогами Обработка электронной почты Интернета POP: чтение e-mail SMTP: отправка электронной почты Почтовый клиент, выполняемый в командной строке Раскодирование вложений в почтовых сообщениях Почтовый клиент PyMailGui Зачем нужен PyMailGui? Запуск PyMailGui Стратегия представления Взаимодействие с PyMailGui Реализация PyMailGui Другие инструменты, используемые на стороне клиен NNTP: доступ к телеконференциям HTTP: доступ к сайтам Прочие возможности создания сценариев клиентов Глава 12. Сценарии, выполняемые на сервере Что такое сценарий CGI для сервера? Притаившийся сценарий Создание сценариев CGI на Python Запуск примеров сценариев, выполняемых на сервере Взбираясь по кривой обучения CGI Первая веб-страница Первый CGI-сценарий Добавление картинок и генерация таблиц Добавление взаимодействия с пользователем Задание структуры формы с помощью таблицы Добавление стандартных инструментов ввода Передача параметров в жестко закодированных URL Селектор «Hello World» Проверка отсутствующих или недопустимых данных Код, облегчающий сопровождение Шаг 1: совместное использование объектов разными Шаг 2: многократно используемая утилита имитации Шаг 3: объединим все вместе – новый сценарий отве Снова об escape-преобразованиях HTML и URL Соглашения по escape-кодам в URL Средства Python для кодировки HTML и URL Преобразование кода HTML Преобразование URL Преобразование URL, встроенных в код HTML Отправка файлов клиентам и серверам Отображение клиентом произвольных файлов сервера Отправка файлов клиента на сервер Способов протолкнуть байты через Сеть много Глава 13. Более крупные примеры сайтов, часть 1 Веб-сайт PyMailCgi Общий обзор реализации Обзор представления программы Корневая страница Отправка почты по SMTP Страница составления сообщений Сценарий для отправки почты Чтение почты POP Страница ввода пароля POP Страница выбора почты из списка Страница просмотра сообщений Страницы действий с сообщением Вспомогательные модули Внешние компоненты Интерфейс почты POP Шифрование паролей POP Общий вспомогательный модуль Недостатки и преимущества сценариев CGI Глава 14. Более крупные примеры сайтов, часть 2 Веб-сайт PyErrata Задачи системы Обзор реализации Стратегия представления Корневая страница Просмотр сообщений PyErrata Интерфейс пользователя: просмотр сообщений с комм Интерфейс пользователя: просмотр сообщений об оши Использование в PyErrata явных URL Реализация: просмотр сообщений с комментариями Реализация: просмотр сообщений об ошибках Общие вспомогательные модули для просмотра Передача сообщений в PyErrata Интерфейс пользователя: передача сообщений с комм Интерфейс пользователя: передача сообщений об оши Реализация: передача сообщений с комментариями Реализация: передача сообщений об ошибках Общий вспомогательный модуль submit Интерфейсы баз данных PyErrata Призрак одновременных обновлений Структура хранилища базы данных Переключатель баз данных Классы для файлов и объектов shelve, специфичные Класс интерфейса базы данных верхнего уровня Взаимные исключения для файлов shelve Средства администрирования Средства создания резервных копий Средства отображения Средства изменения статуса сообщения Проектирование с учетом повторного использования Возможность повторного использования Масштабируемость Глава 15. Более сложные темы Интернета Zope: среда для создания публикаций в веб Компоненты Zope Что такое публикация объектов? HTMLgen: веб-страницы, создаваемые объектами Краткий учебник по HTMLgen JPython (Jython): Python для Java Краткое знакомство с JPython Простой пример использования JPython Приемы автоматизации интерфейсов Создание апплетов Java с помощью JPython Преимущества и недостатки JPython Выбирая Python Grail: веб-броузер на основе Python Простой пример апплета Grail Ограниченный режим выполнения Python Использование rexec Средства обработки XML Расширения для веб-сценариев в Windows Active Scripting: встраивание на стороне клиента Active Server Pages: встраивание кода в сценарии Соединение через COM Python Server Pages Создание собственных серверов на Python Программные решения Готовые решения Часть IV. Разные темы Глава 16. Базы данных и постоянное хранение Возможности постоянного хранения данных в Python Файлы DBM Работа с файлами DBM Сериализованные объекты Применение сериализации объектов Файлы shelve Использование полок Сохранение объектов встроенных типов Хранение экземпляров классов Изменение классов хранимых объектов Ограничения shelve Интерфейсы баз данных SQL Обзор интерфейса Ресурсы PyForm: средство просмотра постоянных объектов Делаем трудным способом Делаем в графическом режиме Глава 17. Структуры данных Реализация стеков Модуль stack Класс stack Индивидуальная настройка: мониторы производительн Оптимизация: стеки дерева кортежей Оптимизация: модификация списка по месту Хронометраж усовершенствований Реализация множеств Функции множеств Классы множеств Оптимизация множеств: переход на словари Программные приемы оптимизации fastset Алгебра отношений для множеств (CD) Двоичные деревья поиска Поиск на графах Перевод графов на классы Реверсирование последовательностей Перестановки последовательностей Сортировка последовательностей Добавление функций сравнения Структуры данных в сравнении со встроенными типам PyTree: общее средство просмотра деревьев объекто Работа с PyTree Исходный код Pytree Pytree тоже производит анализ деревьев Глава 18. Текст и язык Стратегии синтаксического анализа в Python Средства модуля string Суммирование по колонкам в файле Синтаксический разбор строк правил и обратное пре Поиск регулярных выражений Использование модуля re Основные образцы Поиск образцов в файлах заголовков C Утилита для поиска в файлах по образцу Генераторы парсеров Парсеры, написанные вручную Грамматика выражения Код парсера Добавление интерпретатора дерева синтаксического Структура дерева синтаксического разбора Исследование деревьев синтаксического разбора с п Парсеры в сравнении с Python PyCalc: программа/объект калькулятора GUI простого калькулятора Pycalc – GUI реального калькулятора Часть V. Интеграция Глава 19. Расширяем Python Темы, относящиеся к интеграции Обзор расширений на C Простой модуль расширения на C Компиляция и компоновка Анатомия модуля расширения на C Преобразование данных Обработка ошибок Счетчики ссылок SWIG – генератор интегрирующего кода Простой пример SWIG Подробности о SWIG Создание оболочек для вызовов окружения C Но не делайте этого – SWIG Стек строк модуля расширения на C Но и этого тоже не делайте – SWIG Тип стека строк: расширение на C Анатомия типа, расширенного на C Компиляция и выполнение Хронометраж реализаций на C Классы-оболочки для типов C Но этого тоже ненужно делать – пользуйтесь SWIG Создание оболочек классов C++ с помощью SWIG Маленький (но не слишком) класс C++ Создание оболочки для класса на C++ с помощью SWI Использование класса C++ в Python Глава 20. Встраиваем Python Обзор API встраивания в C Что представляет собой встроенный код? Основные приемы встраивания кода Выполнение простых строк кода Выполнение строк кода с использованием результато Вызов объектов Python Выполнение строк в словарях Предварительная компиляция строк в байт-код Регистрация объектов для обработки обратных вызов Использование в C классов Python ppembed: API высокого уровня для встраивания Выполнение объектов с помощью ppembed Выполнение строк кода с помощью ppembed Выполнение настраиваемых проверок Реализация ppembed Другие примеры интеграции, имеющиеся на CD Другие темы интеграции Интеграция с помощью JPython (или Jython) Интеграция в Windows с помощью COM Интеграция CORBA Интеграция против оптимизации Часть VI. Финал Глава 21. Заключение: Python и цикл разработки «Как-то мы неправильно программируем компьютеры» «Фактор Гиллигана» Делать Правильное Дело Цикл разработки для статических языков Искусственные сложности Одним языком не угодишь всем И тут появляется Python А как насчет того узкого места? Python обеспечивает цикл разработки без промежуто Python служит «выполняемым псевдокодом» Python – это правильное ООП Python способствует созданию гибридных приложений По поводу потопления «Титаника» Так что же такое Python: продолжение Заключительный анализ... Эпилог ко второму изданию Интеграция – еще не все Конец войн с Java Нам все еще не удалось выбраться с того острова Приложение А. Последние изменения в Python Изменения в базовом языке Отдельные изменения в библиотеке Изменения в API интеграции Python/C Изменения для Windows Несовместимость Изменения в базовом языке Отдельные изменения в библиотечных модулях Некоторые изменения в утилитах Изменения в базовом языке Изменения в библиотеках Изменение в инструментарии Изменения в API интеграции Python/C Приложение В. Прагматика Windows Unix и Linux Macintosh и другие Пакет с примерами книги Выполнение сценариев для запуска демонстрационных Переменные оболочки Установки конфигурации Конфигурирование из программы Приложение С. Python и C++ Алфавитный указатель Пустая страница
دانلود کتاب Программирование на Python