Вы овладели основами Python. Что дальше? Эта книга представляет собой подробное руководство по применению этого языка программирования в основных прикладных областях - системном администрировании, создании графических интерфейсов и веб-приложений. Исследуются приемы работы с базами данных, программирования сетевых взаимодействий, создания интерфейсов для сценариев, обработки текста и многие другие. Издание описывает синтаксис языка и методики разработки, содержит большое количество примеров, иллюстрирующих типичные идиомы программирования и корректное их применение. Кроме того, исследуется эффективность Python в качестве инструмента разработки программного обеспечения, в отличие от просто инструмента "создания сценариев". В четвертое издание включено описание новых особенностей языка, библиотек и практических приемов программирования для Python 3. X. Примеры, представленные в книге, опробованы под третьей альфа-версией Python 3.2. Можно смело утверждать, что это обстоятельная и всесторонняя книга предназначена быть первой ступенью на пути овладения мастерством разработки приложений на языке Python.
Название: Программирование на Python, том I, 4-е издание Автор: Лутц М. Издательство: Символ-Плюс Год: 2011 Страниц: 992 Формат: PDF Размер: 54,1 МБ ISBN: 978-5-93286-210-0 Качество: Отличное
Содержание:
Предисловие «А теперь нечто совершенно иное…» Об этой книге О четвертом издании Влияние Python 3. X на эту книгу Использование примеров из книги Как связаться с издательством O'Reilly Типографские соглашения Благодарности Об авторе Часть I. Начало Глава 1. Предварительный обзор «Программирование на Python»: краткий очерк Постановка задачи Шаг 1: представление записей Списки Словари Шаг 2: сохранение записей на длительное время Текстовые файлы Модуль pickle Работа модуля pickle с отдельными записями Модуль shelve Шаг 3: переход к ООП Использование классов Добавляем поведение Добавляем наследование Реструктуризация программного кода Добавляем возможность сохранения Другие разновидности баз данных Шаг 4: добавляем интерфейс командной строки Шаг 5: добавляем графический интерфейс Основы графических интерфейсов ООП при разработке графических интерфейсов Получение ввода от пользователя Графический интерфейс к хранилищу Шаг 6: добавляем веб-интерфейс Основы CGI Запуск веб-сервера Использование строки запроса и модуля urllib Форматирование текста ответа Веб-интерфейс к хранилищу с данными Конец демонстрационного примера Часть II. Системное программирование Глава 2. Системные инструменты «os.path - дорога к знанию» Зачем здесь нужен Python? В следующих пяти главах Знакомство с разработкой системных сценариев Системные модули Python Источники документации по модулям Постраничный вывод строк документации Сценарий постраничного вывода Основы использования строковых методов Другие особенности строк в Python 3. X: Юникод и тип bytes Основы операций с файлами Два способа использования программ Руководства по биб лиотекам Python Коммерческие справочники Модуль sys Платформы и версии Путь поиска модулей Таблица загруженных модулей Сведения об исключениях Другие элементы, экспортируемые модулем sys Модуль os Инструменты в модуле os Средства администрирования Константы переносимости Основные инструменты os. path Выполнение команд оболочки из сценариев Другие элементы, экспортируемые модулем os Глава 3. Контекст выполнения сценариев «Ваши аргументы, пожалуйста!» Текущий рабочий каталог Текущий рабочий каталог, файлы и путь поиска модулей Текущий рабочий каталог и командные строки Аргументы командной строки Анализ аргументов командной строки Переменные окружения оболочки Получение значений переменных оболочки Изменение переменных оболочки Особенности переменных оболочки: родители, putenv и getenv Стандартные потоки ввода-вывода Перенаправление потоков ввода-вывода в файлы и программы Перенаправление потоков и взаимодействие с пользователем Перенаправление потоков в объекты Python Вспомогательные классы io. StringIO и io. BytesIO Перехват потока stderr Возможность перенаправления с помощью функции print Другие варианты перенаправления: еще раз об os. popen и subprocess Глава 4. Инструменты для работы с файлами и каталогами «Как очистить свой жесткий диск за пять простых шагов» Инструменты для работы с файлами Модель объекта файла в Python 3. X Использование встроенных объектов файлов Двоичные и текстовые файлы Низкоуровневые инструменты в модуле os для работы с файлами Сканеры файлов Инструменты для работы с каталогами Обход одного каталога Обход деревьев каталогов Обработка имен файлов в Юникоде в версии 3. X: listdir, walk, glob Глава 5. Системные инструменты параллельного выполнения «Расскажите обезьянам, что им делать» Ветвление процессов Комбинация fork/exec Потоки выполнения Модуль _thread Модуль threading Модуль queue Графические интерфейсы и потоки выполнения: предварительное знакомство Подробнее о глобальной блокировке интерпретатора (GIL) Завершение программ Завершение программ средствами модуля sys Завершение программ средствами модуля os Коды завершения команд оболочки Код завершения процесса и совместно используемая информация Код завершения потока и совместно используемая информация Взаимодействия между процессами Анонимные каналы Именованные каналы (fifo) Сокеты: первый взгляд Сигналы Пакет multiprocessing Зачем нужен пакет multiprocessing? Основы: процессы и блокировки Инструменты IPC: каналы, разделяемая память и очереди Запуск независимых программ И многое другое Зачем нужен пакет multiprocessing? Заключение Другие способы запуска программ Семейство функций os. spawn Функция os. startfile в Windows Переносимый модуль запуска программ Другие системные инструменты Глава 6. Законченные системные программы «Ярость поиска» Игра: «Найди самый большой файл Python» Сканирование каталога стандартной биб лиотеки Сканирование дерева каталогов стандартной библиотеки Сканирование пути поиска модулей Сканирование всего компьютера Вывод имен файлов с символами Юникода Разрезание и объединение файлов Разрезание файлов переносимым способом Соединение файлов переносимым образом Варианты использования Создание веб-страниц для переадресации Файл шаблона страницы Сценарий генератора страниц Сценарий регрессивного тестирования Запускаем тестирование Копирование деревьев каталогов Сравнение деревьев каталогов Поиск расхождений между каталогами Поиск различий между деревьями Запускаем сценарий Проверка резервных копий Отчет о различиях и другие идеи Поиск в деревьях каталогов grep, glob и find Создание собственного модуля find Удаление файлов с байт-кодом Visitor: обход каталогов «++» Редактирование файлов в деревьях каталогов (Visitor) Глобальная замена в деревьях каталогов (Visitor) Подсчет строк исходного программного кода (Visitor) Копирование деревьев каталогов с помощью классов (Visitor) Другие примеры обходчиков (внешние) Проигрывание медиафайлов Модуль webbrowser Модуль mimetypes Запускаем сценарий Автоматизированный запуск программ (внешние примеры) Часть III. Программирование графических интерфейсов Глава 7. Графические интерфейсы пользователя «Я здесь, я смотрю на тебя, детка» Темы программирования GUI Запуск примеров Различные возможности создания GUI в Python Обзор tkinter Практические преимущества tkinter Документация tkinter Расширения для tkinter Структура tkinter Взбираясь по кривой обучения программированию графических интерфейсов «Hello World» в четыре строки (или меньше) Основы использования tkinter Создание виджетов Менеджеры компоновки Запуск программ с графическим интерфейсом Альтернативные приемы использования tkinter Основы изменения размеров виджетов Настройка параметров графического элемента и заголовка окна Еще одна версия в память о былых временах Добавление виджетов без их сохранения Добавление кнопок и обработчиков Еще раз об изменении размеров виджетов: растягивание Добавление пользовательских обработчиков lambda-выражения как обработчики событий Отложенные вызовы с применением инструкций lambda и ссылок на объекты Проблемы с областями видимости обработчиков Связанные методы как обработчики событий Объекты вызываемых классов как обработчики событий Другие протоколы обратного вызова в tkinter Связывание событий Добавление нескольких виджетов Еще раз об изменении размеров: обрезание Прикрепление виджетов к фреймам Порядок компоновки и прикрепление к сторонам Снова о параметрах expand и fill компоновки Использование якорей вместо растягивания Настройка виджетов с помощью классов Стандартизация поведения и внешнего вида Повторно используемые компоненты и классы Прикрепление классов компонентов Расширение классов компонентов Автономные классы-контейнеры Завершение начального обучения Соответствие между Python/tkinter и Tcl/Tk Глава 8. Экскурсия по tkinter, часть 1 «Виджеты, гаджеты, графические интерфейсы… Бог мой!» Темы этой главы Настройка внешнего вида виджетов Окна верхнего уровня Виджеты Toplevel и Tk Протоколы окна верхнего уровня Диалоги Стандартные (типичные) диалоги Модуль диалогов в старом стиле Пользовательские диалоги Привязка событий Другие события, доступные с помощью метода bind Виджеты Message и Entry Message Entry Компоновка элементов ввода в формах «Переменные» tkinter и альтернативные способы компоновки форм Флажки, переключатели и ползунки Флажки Переключатели Ползунки Три способа использования графических интерфейсов Прикрепление к фреймам Независимые окна Запуск программ Изображения Развлечения с кнопками и картинками Отображение и обработка изображений с помощью PIL Основы PIL Отображение других типов графических изображений с помощью PIL Отображение всех изображений в каталоге Создание миниатюр изображений с помощью пакета PIL Глава 9. Экскурсия по tkinter, часть 2 «Меню дня: Spam, Spam и еще раз Spam» Меню Меню окон верхнего уровня Меню на основе виджетов Frame и Menubutton Окна с меню и панелью инструментов Виджеты Listbox и Scrollbar Программирование виджетов списков Программирование полос прокрутки Компоновка полос прокрутки Виджет Text Программирование виджета Text Операции редактирования текста Юникод и виджет Text Более сложные операции с текстом и тегами Виджет Canvas Базовые операции с виджетом Canvas Программирование виджета Canvas Прокрутка холстов Холсты с поддержкой прокрутки и миниатюр изображений События холстов Сетки В чем преимущества размещения по сетке? Основы работы с сеткой: еще раз о формах ввода Сравнение методов grid и pack Сочетание grid и pack Реализация возможности растягивания виджетов, размещаемых по сетке Создание крупных таблиц с помощью grid Инструменты синхронизации, потоки выполнения и анимация Использование потоков выполнения в графических интерфейсах tkinter Использование метода after Простые приемы воспроизведения анимации Другие темы, связанные с анимацией Конец экскурсии Другие виджеты и их параметры Глава 10. Приемы программирования графических интерфейсов «Создание улучшенной мышеловки» GuiMixin: универсальные подмешиваемые классы Функции создания виджетов Вспомогательные подмешиваемые классы GuiMaker: автоматизация создания меню и панелей инструментов Протоколы подклассов Классы GuiMaker Программный код самотестирования GuiMaker BigGui: клиентская демонстрационная программа ShellGui: графические интерфейсы к инструментам командной строки Обобщенный графический интерфейс инструментов оболочки Классы наборов утилит Добавление графических интерфейсов к инструментам командной строки GuiStreams: перенаправление потоков данных в виджеты Использование перенаправления сценариев архивирования Динамическая перезагрузка обработчиков Обертывание интерфейсов окон верхнего уровня Графические интерфейсы, потоки выполнения и очереди Помещение данных в очередь Помещение обработчиков в очередь Другие способы добавления GUI к сценариям командной строки Вывод окон графического интерфейса по требованию Реализация графического интерфейса в виде отдельной программы: сокеты (вторая встреча) Реализация графического интерфейса в виде отдельной программы: каналы Запускающие программы PyDemos и PyGadgets Панель запуска PyDemos Панель запуска PyGadgets Глава 11. Примеры законченных программ с графическим интерфейсом «Python, открытое программное обеспечение и Camaro» Примеры в других главах Стратегия данной главы PyEdit: программа/объект текстового редактора Запуск PyEdit Изменения в версии PyEdit 2.0 (третье издание) Изменения в версии PyEdit 2.1 (четвертое издание) Исходный программный код PyEdit PyPhoto: программа просмотра и изменения размеров изображений Запуск PyPhoto Исходный программный код PyPhoto PyView: слайд-шоу для изображений и примечаний Запуск PyView Исходный программный код PyView PyDraw: рисование и перемещение графики Запуск PyDraw Исходный программный код PyDraw PyClock: виджет аналоговых/цифровых часов Краткий урок геометрии Запуск PyClock Исходный программный код PyClock PyToe: виджет игры в крестики-нолики Запуск PyToe Исходный программный код PyToe (внешний) Что дальше Алфавитный указатель