prakticheskoe-rukovodstvo-dlya-nachinayuschih-po-python

Руководство для начинающих.

Эл Свейгарт "Автоматизация рутинных задач с помощью Python" Вильямс, 2017 год, 592 стр., перевод с английского Г. Гузикевича (20,1 мб. pdf + 9,39 мб. дополнительные материалы)

Эта книга представляет собой практическое руководство для начинающих по Python. Где представлены основные понятия языка, необходимые для начального знакомства с его синтаксисом и структурой в объеме достаточном для написания небольших программ, которые помогут на практике применить полученные знания. Книга разбита на две части - первая представит начинающим программистам возможность познакомиться с языком Python. Если вы уже изучали какой либо язык программирования, то эта часть книги не займет много времени, если же нет, то изучите её досконально.

Во второй части автор показывает практические примеры использования полученных знаний. Показаны примеры создания приложений работы с файлами и папками, заполнения веб-форм, загрузки файлов с сайтов и копирование текста, работы с таблицами Excel и другие простые но полезные операции. А самое важное то, что изучение приводимых примеров на практике, а также создание подобных собственных миниприложений для автоматизации рутинных задач, даст возможность изучить основы программирования на Python и в дальнейшем успешно осваивать объектно-ориентированный подход и другие методики "продвинутого" программирования.
ISBN 978-5-8459-2090-4 (рус.)

Оглавление.

Часть I. Основы программирования на языке Python
Глава 1. Основные понятия языка Python
Ввод выражений в интерактивной оболочке
Типы данных: целые числа, вещественные числа, строки
Конкатенация и репликация строк
Сохранение значений в переменных
Инструкции присваивания
Имена переменных
Ваша первая программа
Анализ программы
Комментарии
Функция print()
Функция input()
Вывод имени пользователя
Функция len()
Функции str(), int() и float()
Резюме
Контрольные вопросы

Глава 2. Поток управления
Булевы значения
Операторы сравнения
Булевы операторы
Бинарные булевы операторы
Оператор not
Сочетание операторов сравнения с булевыми операторами
Элементы потока управления
Условия
Блоки кода
Выполнение программы
Управляющие инструкции
Инструкция if
Инструкция else
Инструкция elif
Цикл while
Инструкция break
Инструкция continue
Цикл for и функция range ()
Импортирование модулей
Инструкция from import
Преждевременное прекращение выполнения программы с помощью вызова sys. exit ()
Резюме
Контрольные вопросы

Глава 3. Функции
Инструкции def с параметрами
Инструкция return и возвращаемые значения
Значение None
Именованные аргументы и функция print ()
Локальная и глобальная области видимости
Локальные переменные не могут использоваться в глобальной области видимости
В локальных областях видимости не могут использоваться неременные из других локальных областей видимости
Глобальные переменные могут читаться из локальной области видимости
Локальные и глобальные переменные с одинаковыми именами
Инструкция global
Обработка исключений
Короткая программа: угадай число
Резюме
Контрольные вопросы
Учебные проекты
Последовательность Коллатца
Проверка корректности ввода

Глава 4. Списки
Что такое список
Доступ к отдельным элементам списка с помощью индексов
Отрицательные индексы
Получение части списка с помощью среза
Получение длины списка с помощью функции len ()
Изменение значений в списках с помощью индексов
Конкатенация и репликация списков
Удаление значений из списка с помощью инструкции del
Работа со списками
Использование циклов for со списками
Операторы in и not in
Трюк с групповым присваиванием
Комбинированные операторы присваивания
Методы
Поиск значения в списке с помощью метода index ()
Добавление значений в список с помощью методов append () и insert()
Удаление значений из списка с помощью метода remove ()
Сортировка значений в списке с помощью метода sort ()
Пример программы: Magic 8 Ball со списком
Типы данных, подобные спискам: строки и кортежи
Изменяемые и неизменяемые типы данных
Кортежи
Преобразование типов с помощью функций list () и tuple ()
Ссылки
Передача ссылок
Функции сору () и deepcopy() модуля сору
Резюме
Контрольные вопросы
Учебные проекты
Запятая в качестве разделителя
Рисование символами

Глава 5. Словари и структурирование данных
Что такое словарь
Сравнение словарей и списков
Методы keys(), values() и items()
Проверка существования ключа или значения в словаре
Метод get ()
Метод setdefault ()
Красивая печать
Использование структур данных для моделирования реальных объектов 153
Поле для игры в "крестики-нолики"
Вложенные словари и списки
Резюме
Контрольные вопросы
Учебные проекты
Инвентарь приключенческой игры
Функция преобразования списка в словарь для приключенческой игры

Глава 6. Манипулирование строками
Работа со строками
Строковые литералы
Индексирование строк и извлечение срезов
Использование операторов in и not in со строками
Полезные методы для работы со строками
Методы upper(), lower(), isupper() и islower()
Строковые методы isX()
Методы startswith () Hendswith ()
Строковые методы join () и split ()
Выравнивание текста с помощью методов г just (), ljust () и center()
Удаление пробелов с помощью методов strip (), rstrip () и lstrip ()
Копирование и вставка строк с помощью модуля pyperclip

Проект: парольная защита
Шаг 1. Проектирование программы и структур данных
Шаг 2. Обработка аргументов командной строки
Шаг 3. Копирование пароля

Проект: добавление маркеров в разметку Wiki-документов
Шаг 1. Копирование и вставка посредством буфера обмена
Шаг 2. Разбивка текста на строки и добавление звездочек
Шаг 3. Объединение измененных с трок
Резюме
Контрольные вопросы
Учебный проект
Табличный вывод данных

Часть II. Автоматизация задач

Глава 7. Поиск по шаблону с помощью регулярных выражений
Поиск образцов текста без использования регулярных выражений
Поиск образцов текста с помощью регулярных выражений
Создание объектов Regex
Поиск соответствий объектам Regex
Пошаговая процедура поиска соответствий регулярному выражению
Другие возможные шаблоны регулярных выражений
Создание групп с помощью круглых скобок
Выбор альтернативных групп с помощью канала
Указание необязательной группы символов с помощью вопросительного знака
Указание соответствия группе символов, повторяющейся нуль или несколько раз, с помощью звездочки
Указание соответствия одному или нескольким повторениям группы с помощью плюса
Указание соответствия определенному количеству повторений группы с помощью фигурных скобок
Жадный и нежадный виды поиска
Метод findall ()
Символьные классы
Создание собственных символьных классов
Символ крышки и знак доллара
Групповой символ
Указание соответствия любому тексту с помощью комбинации "точка-звездочка"
Указание соответствия символам новой строки с помощью точки
Сводка символов регулярных выражений
Игнорирование регистра при поиске соответствий
Замена строк с помощью метода sub ()
Работа со сложными регулярными выражениями
Комбинация констант re. IGNORECASE, re. DOTALL и re.VERBOSE

Проект: извлечение телефонных номеров и адресов электронной почты
Шаг 1. Создание регулярного выражения для поиска телефонных номеров
Шаг 2. Создание регулярного выражения для поиска адресов электронной почты
Шаг 3. Поиск всех совпадений в тексте, скопированном в буфер обмена
Шаг 4. Объединение совпадений в одну строку для копирования в буфер обмена
Выполнение программы
Идеи относительно создания аналогичных программ
Резюме
Контрольные вопросы
Учебные проекты
Обнаружение сильных паролей
Версия функции strip (), использующая регулярные выражения

Глава 8. Чтение и запись файлов
Файлы и пути доступа к ним
Использование обратной косой черты в Windows и косой черты в OS X и Linux
Текущий рабочий каталог
Абсолютные и относительные пути доступа
Создание новых папок с помощью функции os .makedirs ()
Модуль os. path
Обработка абсолютных и относительных путей
Определение размеров файлов и содержимого папок
Проверка существования пути
Чтение и запись файлов
Открытие файла с помощью функции open ()
Чтение содержимого файла
Запись в файл
Сохранение переменных с помощью модуля shelve
Сохранение переменных с помощью функции pprint. pf ormat ()

Проект: генерация файлов случайных экзаменационных билетов
Шаг 1. Сохранение данных билетов в словаре
Шаг 2. Создание файлов билетов и перемешивание вопросов
Шаг 3. Создание вариантов ответов
Шаг 4. Запис ь содержимого в файлы билетов и ключей ответов

Проект: буфер обмена для работы с несколькими значениями
Шаг 1. Комментарии и настройка хранилища
Шаг 2. Создание содержимого буфера обмена, ассоциируемого с ключевым словом
Шаг 3. Список ключевых слов и загрузка содержимого, ассоциированного с ключевым словом
Резюме
Контрольные вопросы
Учебные проекты
Расширение возможностей буфера обмена, рассчитанного на работу с несколькими значениями
Программа Mad Libs
Поиск с помощью регулярных выражений

Глава 9. Управление файлами
Модуль shutil
Копирование файлов и папок
Перемещение и переименование файлов и папок
Безвозвратное удаление файлов и папок
Сохраняйте резервные копии удаленных файлов и папок с помощью модуля send2trash
Обход дерева каталогов
Сжатие файлов с помощью модуля zipfile
Чтение ZIP-файлов
Извлечение файлов из ZIP-архива
Создание ZIP-файлов и добавление в них новых файлов

Проект: переименование файлов с заменой американского формата дат европейским
Шаг 1. Создание регулярного выражения для поиска дат, указанных в американском формате
Шаг 2. Идентификация частей имен файлов, соответствующих датам
Шаг 3. Формирование нового имени файла и переименование файлов
Идеи относительно создания аналогичных программ

Проект: создание резервной копии папки в виде ZIP-файла
Шаг 1. Определение имени, которое следует присвоить ZIP-файлу
Шаг 2. Создание нового ZIP-файла
Шаг 3. Обход дерева каталогов и добавление содержимого в ZIP-файл
Идеи относительно создания аналогичных программ
Резюме
Контрольные вопросы
Учебные проекты
Выборочное копирование
Удаление ненужных файлов
Заполнение пропусков в нумерации файлов

Глава 10. Отладка
Возбуждение исключений
Получение обратной трассировки стека вызовов в виде строки
Утверждения
Использование утверждений в программе, имитирующей работу светофора
Отключение утверждений
Протоколирование
Использование модуля logging
Не выполняйте отладку с помощью инструкции print ()
Уровень критичности сообщений
Отключение протоколирования
Запись сообщений протоколирования в файл журнала
Отладчик IDLE
Кнопка Go
Кнопка Step
Кнопка Over
Кнопка Out
Кнопка Quit
Отладка программы для сложения чисел
Точки останова
Резюме
Контрольные вопросы
Учебный проект
Отладка программы, имитирующей подбрасывание монеты

Глава 11. Автоматический сбор данных в Интернете
Проект: программа mapIt.py с модулем webbrowser
Шаг 1. Определение URL-адреса
Шаг 2. Обработка аргументов командной строки
Шаг 3. Обработка содержимого буфера обмена и запуск браузера
Идеи относительно создания аналогичных программ
Загрузка файлов из Интернета с помощью модуля Requests
Загрузка веб-страницы посредством функции requests. get ()
Проверка ошибок
Сохранение загруженных файлов на жестком диске
HTML
Ресурсы для изучения HTML
Краткие сведения по HTML
Просмотр исходного HTML-кода веб-страницы
Открытие окна инструментов разработчика в браузере
Использование инструментов разработчика для поиска HTML-элементов
Синтаксический анализ HTML с помощью Beautiful Soup
Создание объекта BeautifulSoup на основе HTML
Поиск элемента с помощью метода select ()
Получение данных из атрибутов элемента

Проект: кнопка "Мне повезет" поисковика Google
Шаг 1. Получение аргументов командной строки и запрос поисковой страницы
Шаг 2. Поиск всех результатов
Шаг 3. Открытие браузера для каждого из результатов поиска
Идеи относительно создания аналогичных программ

Проект: загрузка всех комиксов на сайте XKCD
Шаг 1. Проектирование программы
Шаг 2. Загрузка веб-страницы
Шаг 3. Поиск и загрузка изображения комикса
Шаг 4. Сохранение изображения и поиск предыдущего комикса
Идеи относительно создания аналогичных программ
Управление браузером с помощью модуля Selenium
Запуск браузера, управляемого модулем Selenium
Поиск элементов на странице
Щелчок на странице
Заполнение и отправка форм
Отправка кодов специальных клавиш
Щелчки на кнопках браузера
Получение дополнительной информации о модуле Selenium
Резюме
Контрольные вопросы
Учебные проекты
Программа для отправки электронной почты из командной строки
Загрузчик изображений из Интернета
"2048"
Верификация ссылок

Глава 12. Работа с электронными таблицами Excel
Документы Excel
Установка модуля openpyxl
Чтение документов Excel 9
Открытие документов Excel с помощью модуля OpenPyXL
Получение списка листов рабочей книги
Получение ячеек рабочих листов
Выполнение преобразований между буквенными и цифровыми обозначениями столбцов
Получение строк и столбцов рабочих листов

Рабочие книги, листы и ячейки
Проект: чтение данных электронной таблицы
Шаг 1. Чтение данных электронной таблицы
Шаг 2. Заполнение структуры данных
Шаг 3. Запись результатов в файл
Идеи относительно создания аналогичных программ
Запись документов Excel
Создание и сохранение документов Excel
Создание и удаление рабочих листов
Запись значений в ячейки

Проект: обновление электронной таблицы
Шаг 1. Создание структуры, содержащей данные для обновления
Шаг 2. Проверка всех строк и обновление некорректных цен
Идеи относительно создания аналогичных программ
Настройка типов шрифтов, используемых в ячейках таблицы
Объекты Font
Формулы
Настройка строк и столбцов
Настройка высоты строк и ширины столбцов
Слияние и отмена слияния ячеек
Закрепление областей
Диаграммы
Резюме
Контрольные вопросы
Учебные проекты
Генератор таблиц умножения
Программа для вставки пустых строк
Отражение электронной таблицы относительно диагонали
Преобразование текстовых файлов в электронную таблицу
Преобразование электронной таблицы в текстовые файлы

Глава 13. Работа с документами в форматах PDF и Word
PDF-документы
Извлечение текста из PDF-файлов
Дешифрование PDF-документов
Создание PDF-документов

Проект: объединение выбранных страниц из многих PDF-документов
Шаг 1. Поиск всех PDF-файлов
Шаг 2. Открытие PDF-файлов
Шаг 3. Добавление страниц
Шаг 4. Сохранение результатов
Идеи относительно создания аналогичных программ
Документы Word
Чтение документов Word
Получение полного текста из файла .docx
Стилевое оформление абзаца и объекты Run
Создание документов Word с нестандартными стилями
Атрибуты объекта Run
Запись документов Word
Добавление заголовков
Добавление разрывов строк и страниц
Добавление изображений
Резюме
Контрольные вопросы
Учебные проекты
PDF-паранойя
Персонализированные приглашения в виде документов Word
Взлом паролей PDF методом грубой силы

Глава 14. Работа с CSV-файлами и данными в формате JSON
Модуль csv
Объекты Reader
Чтение данных из объектов Reader в цикле for
Объекты Writer
Именованные аргументы delimiter и lineterminator

Проект: удаление заголовков из CSV-файла
Шаг 1. Цикл по всем CSV-файлам
Шаг 2. Чтение CSV-файла
Шаг 3. Запись CSV-файла без первой строки
Идеи относительно создания аналогичных программ
JSON и интерфейсы прикладного программирования
Модуль json
Чтение данных JSON с помощью функции loads ()
Запись данных JSON с помощью функции dumps ()
Проект: получение текущего прогноза погоды
Шаг 1. Получение расположения из аргумента командной строки
Шаг 2. Загрузка JSON-данных
Шаг 3. Загрузка JSON-данных и вывод прогноза погоды
Идеи относительно создания аналогичных программ
Резюме
Контрольные вопросы
Учебный проект
Программа для преобразования данных из формата Excel в формат CSV

Глава 15. Обработка значении даты и времени, планировщик заданий и запуск программ
Модуль time
Функция time. time ()
Функция time. sleep ()
Округление чисел

Проект: суперсекундомер с остановом
Шаг 1. Создание каркаса программы для отслеживания времени
Шаг 2. Отслеживание и вывод длительности замеров
Идеи относительно создания аналогичных программ
Модуль datetime
Тип данных timedelta
Организация паузы до наступления определенной даты
Преобразование объектов datetime в строки
Преобразование строк в объекты datetime
Обзор функций Python для работы с датами и временем
Многопоточность
Передача аргументов целевой функции
Проблемы параллелизма

Проект: многопоточный загрузчик файлов с сайта XKCD
Шаг 1. Видоизменение программы путем вынесения ее кода в функцию
Шаг 2. Создание и запуск потоков выполнения
Шаг 3. Ожидание завершения всех потоков
Запуск других программ из Python
Передача аргументов командной строки функции Popen ()
Планировщик заданий Windows, система инициализации launchd и демон-планировщик cron
Открытие веб-сайтов с помощью Python
Запуск других сценариев Python
Открытие файлов программами по умолчанию

Проект: простая программа обратного отсчета времени
Шаг 1. Обратный отсчет
Шаг 2. Воспроизведение звукового файла
Идеи относительно создания аналогичных программ
Резюме
Контрольные вопросы
Учебные проекты
Приукрашенный хронометр
Загрузка веб-комиксов по расписанию

Глава 16. Отправка сообщений электронной почты и текстовых сообщений
SMTP
Отправка электронной почты
Установление соединения с SMTP-сервером
Отправка строки приветствия SMTP-серверу
Начало TLS-шифрования
Выполнение процедуры входа на SMTP-сервер
Отправка почты
Разрыв соединения с SMTP-сервером
IMAP
Извлечение и удаление сообщений электронной почты с помощью IMAP
Соединение с IMAP-сервером
Вход в учетную запись на IMAP-сервере
Поиск сообщений
Извлечение сообщений электронной почты и снабжение прочитанных писем специальной меткой
Получение адресов электронной почты из сырых сообщений
Получение тела письма из сырого сообщения
Удаление сообщений
Разрыв соединения с сервером IMAP

Проект: рассылка по электронной почте напоминаний о необходимости уплаты членских взносов
Шаг 1. Открытие файла Excel
Шаг 2. Поиск всех членов клуба, не уплативших взнос
Шаг 3. Отправка персональных напоминаний по электронной почте
Отправка текстовых сообщений с помощью Twilio
Создание учетной записи Twilio
Отправка текстовых сообщений
Получение текстовых сообщений с помощью Python

Проект: модуль Черкни мне
Резюме
Контрольные вопросы
Учебные проекты
Распределение рутинных задач путем рассылки
по электронной почте
Напоминание о зонтике
Автоматический отказ от подписки
Дистанционное управление компьютером посредством электронной почты

Глава 17. Работа с изображениями
Основы компьютерной обработки изображений
Цвета и RGBA-значения
Кортежи координат и прямоугольников
Манипулирование изображениями с помощью библиотеки Pillow
Работа с типом данных Image
Обрезка изображений
Копирование и вставка изображений в другие изображения
Изменение размеров изображения
Поворот и зеркальное отображение изображений
Изменение отдельных пикселей

Проект: добавление логотипа
Шаг 1. Открытие изображения логотипа
Шаг 2. Цикл по всем файлам и открытым изображениям
Шаг 3. Изменение размеров изображений
Шаг 4. Добавление логотипа и сохранение изменений
Идеи относительно создания аналогичных программ
Рисование изображений
Рисование фигур
Рисование текста
Резюме
Контрольные вопросы
Учебные проекты
Расширение и доработка программ основного проекта этой главы
Обнаружение папок с фотографиями на жестком диске
Персональные приглашения

Глава 18. Управление клавиатурой и мышью с помощью средств автоматизации графического интерфейса пользователя
Установка модуля pyautogui
Сохранение контроля над клавиатурой и мышью
Прекращение выполнения всех задач путем выхода из учетной записи
Паузы и безопасный резервный выход
Управление перемещениями указателя мыши
Перемещение указателя мыши
Получение позиции указателя мыши

Проект Где сейчас находится указатель мыши?
Шаг 1. Импортирование модуля
Шаг 2. Код выхода из программы и бесконечный цикл
Шаг 3. Получение и вывод координат указателя мыши
Управление взаимодействием с мышью
Щелчки мышью
Перетаскивание указателя мыши
Прокрутка
Работа с экраном
Получение снимка экрана
Анализ снимка экрана
Проект: расширение программы mouseNow. py
Распознавание образов
Управление клавиатурой
Отправка строки, набранной на виртуальной клавиатуре
Обозначения клавиш
Нажатие и отпускание клавиш
Горячие клавиши
Обзор функций PyAutoGUI
Проект: автоматическое заполнение формы
Шаг 1. Составление плана действий
Шаг 2. Настройка координат
Шаг 3. Начало ввода данных
Шаг 4. Обработка списков выбора и переключателей
Шаг 5. Отправка формы и ожидание
Резюме
Контрольные вопросы
Учебные проекты
Как притвориться занятым
Бот для отправки мгновенных сообщений
Руководство по созданию игрового бота

Приложение А. Установка модулей сторонних разработчиков
Утилита pip
Установка сторонних модулей

Приложение Б. Запуск программ
Магическая строка
Запуск программ на Python в Windows
Запуск программ на Python в OS X и Linux
Запуск программ на Python с отключенными утверждениями
Приложение В. Ответы на контрольные вопросы

Скачать книги бесплатно20,1 мб. pdf Скачать доп.материалы бесплатно9,39 мб.