СОДЕРЖАНИЕ....7
Об авторе....24
О техническом рецензенте....24
Введение....26
Для кого предназначена эта книга....27
Исходные предположения....28
Что такое программирование....28
Что такое Python....29
Программисту не обязательно в совершенстве знать математику....30
Учиться программированию никогда не поздно....31
Программирование — творческий вид деятельности....31
Структура книги....32
Загрузка и установка Python....34
Загрузка и установка Mu....35
Запуск Mu....35
Запуск IDLE....36
Интерактивная оболочка....36
Установка сторонних модулей....37
Как получить справку....37
Правильно формулируйте вопросы, ответы на которые ищете....38
Файлы примеров....40
Резюме....41
Часть I Основы программирования на языке Python....42
Глава 1. Основные понятия языка Python....44
Ввод выражений в интерактивной оболочке....45
Типы данных: целые числа, вещественные числа и строки....48
Конкатенация и репликация строк....49
Сохранение значений в переменных....50
Операции присваивания....50
Имена переменных....51
Ваша первая программа....53
Анализ программы....54
Комментарии....54
Функция print()....55
Функция input()....55
Вывод имени пользователя....56
Функция len()....56
Функции str(), int() и float()....57
Резюме....60
Контрольные вопросы....61
Глава 2. Порядок выполнения программы....62
Булевы значения....64
Операторы сравнения....64
Булевы операторы....66
Бинарные булевы операторы....66
Оператор not....67
Сочетание операторов сравнения и булевых операторов....68
Элементы структурирования программы....69
Условия....69
Блоки кода....69
Выполнение программы....70
Управляющие инструкции....70
Инструкция if....70
Инструкция else....71
Инструкция elif....72
Цикл while....78
Инструкция break....82
Инструкция continue....83
Цикл for и функция range()....86
Импорт модулей....90
Инструкция from import....91
Досрочное завершение программы с помощью функции sys.exit()....92
Короткая программа: угадай число....93
Короткая программа: камень, ножницы, бумага....95
Резюме....99
Контрольные вопросы....99
Глава 3. Функции....102
Инструкции def с параметрами....104
Терминология функций....105
Инструкция return и возвращаемые значения....105
Значение None....107
Именованные аргументы и функция print()....108
Стек вызовов....109
Локальная и глобальная области видимости....111
Локальные переменные не могут использоваться в глобальной области видимости....113
В локальных областях видимости не могут использоваться переменные из других локальных областей видимости....113
Глобальные переменные доступны из локальной области видимости....114
Локальные и глобальные переменные с одинаковыми именами....115
Инструкция global....116
Обработка исключений....118
Короткая программа: зигзаг....120
Резюме....123
Контрольные вопросы....123
Учебные проекты....124
Последовательность Коллатца....124
Проверка корректности ввода....125
Глава 4. Списки....126
Что такое список....127
Доступ к элементам списка с помощью индексов....127
Отрицательные индексы....129
Получение фрагмента списка с помощью среза....130
Определение длины списка с помощью функции len()....130
Изменение элементов списка с помощью индексов....131
Конкатенация и репликация списков....131
Удаление значений из списка с помощью инструкции del....131
Работа со списками....132
Использование циклов for со списками....134
Операторы in и not in....135
Трюк с групповым присваиванием....136
Использование функции enumerate() со списками....136
Использование функций random, choice() и random, shuffle() со списками....137
Комбинированные операторы присваивания....137
Методы....138
Поиск значения в списке с помощью метода index()....139
Добавление значений в список с помощью методов append() и insert()....139
Удаление значений из списка с помощью метода remove()....140
Сортировка списка с помощью метода sort()....141
Инверсия списка с помощью метода reverse()....142
Пример программы: Magic 8 Ball со списком....143
Списковые типы данных....144
Изменяемые и неизменяемые типы данных....145
Кортежи....147
Преобразование типов с помощью функций list() и tuple()....148
Ссылки....148
Тождественность и функция id()....151
Передача ссылок....152
Функции сору() и deepcopy()....153
Короткая программа: игра “Жизнь”....154
Резюме....160
Контрольные вопросы....160
Учебные проекты....161
Запятая в качестве разделителя....161
Эксперименты с монетой....161
Символьная сетка....162
Глава 5. Словари....164
Что такое словарь....165
Сравнение словарей и списков....165
Методы keys(), values() и items()....167
Проверка наличия ключа или значения в словаре....169
Метод get()....170
Метод setdefault()....170
Красивый вывод....172
Использование структур данных для моделирования реальных объектов....173
Поле для игры в “крестики-нолики”....174
Вложенные словари и списки....180
Резюме....181
Контрольные вопросы....181
Учебные проекты....182
Валидатор словаря для игры в шахматы....182
Инвентарь приключенческой игры....182
Функция добавления списка в словарь для приключенческой игры....183
Глава 6. Строки....186
Работа со строками....187
Строковые литералы....187
Индексирование строк и извлечение срезов....190
Использование операторов in и not in со строками....191
Вставка строк в другие строки....191
Полезные методы для работы со строками....192
Методы upper(), lower(), isupper() и islower()....192
Строковые методы isX()....194
Методы startswith() и endswith()....196
Методы join() и split()....197
Разбиение строк с помощью метода partition()....198
Выравнивание текста с помощью методов rjust(), ljust() и center()....199
Удаление пробелов с помощью методов strip(), rstrip() и lstrip()....201
Получение числовых значений символов с помощью функций ord() и chr()....202
Копирование и вставка строк с помощью модуля pyperclip....203
Проект: автоматическая рассылка сообщений с помощью нескольких буферов обмена....204
Шаг 1. Проектирование программы и структур данных....204
Шаг 2. Обработка аргументов командной строки....205
Шаг 3. Копирование фразы в буфер....205
Проект: добавление маркеров в разметку Wiki-документов....206
Шаг 1. Копирование и вставка посредством буфера обмена....207
Шаг 2. Разбивка текста на строки и добавление звездочек....208
Шаг 3. Объединение измененных строк....209
Короткая программа: поросячья латынь....209
Резюме....213
Контрольные вопросы....214
Учебные проекты....215
Табличный вывод данных....215
Боты Zombie Dice....216
Часть II. Автоматизация задач....220
Глава 7. Регулярные выражения....222
Поиск образцов текста без использования регулярных выражений....223
Поиск образцов текста с помощью регулярных выражений....225
Создание объектов Regex....226
Поиск соответствий объектам Regex....227
Пошаговая процедура....227
Другие шаблоны регулярных выражений....228
Создание групп с помощью круглых скобок....228
Выбор альтернативных групп с помощью канала....230
Указание необязательной группы с помощью вопросительного знака....231
Указание группы, повторяющейся нуль или несколько раз, с помощью звездочки....232
Указание группы, повторяющейся один или несколько раз, с помощью знака “плюс”....232
Указание количества повторений с помощью фигурных скобок....233
Жадный и нежадный виды поиска....234
Метод findall()....235
Символьные классы....236
Создание собственных символьных классов....236
Символ ^ и знак доллара....237
Символ подстановки....238
Поиск любого текста с помощью комбинации “точка — звездочка”....239
Поиск символов новой строки с помощью точки....240
Сводка синтаксиса регулярных выражений....240
Поиск без учета регистра....241
Замена строк с помощью метода sub()....242
Работа со сложными регулярными выражениями....242
Комбинация констант re.IGNORECASE, re.DOTALL и re.VERBOSE....243
Проект: извлечение телефонных номеров и адресов электронной почты....244
Шаг 1. Создание регулярного выражения для поиска телефонных номеров....245
Шаг 2. Создание регулярного выражения для поиска адресов электронной почты....246
Шаг 3. Поиск всех совпадений в тексте, скопированном в буфер обмена....247
Шаг 4. Объединение совпадений в одну строку для копирования в буфер обмена....248
Запуск программы....249
Идеи для создания похожих программ....249
Резюме....250
Контрольные вопросы....250
Учебные проекты....252
Обнаружение даты....252
Выявление сильных паролей....253
Версия метода strip(), использующая регулярные выражения....253
Глава 8. Проверка ввода....254
Модуль PyInputPlus....255
Именованные аргументы min, max, greaterThan и lessThan....258
Именованный аргумент blank....258
Именованные аргументы limit, timeout и default....259
Именованные аргументы allowRegexes и blockRegexes....260
Передача пользовательской функции проверки в функцию inputCustom()....261
Проект: как занять дурака на несколько часов....262
Проект: тест на умножение....264
Резюме....266
Контрольные вопросы....267
Учебные проекты....267
Изготовитель бутербродов....268
Собственный тест на умножение....268
Глава 9. Чтение и запись файлов....270
Файлы и папки....271
Использование обратной косой черты в Windows и косой черты в macOS и Linux....272
Использование оператора / для объединения путей....273
Текущий каталог....275
Домашний каталог....276
Абсолютные и относительные пути....276
Создание новых папок с помощью функции os.makedirs()....277
Обработка абсолютных и относительных путей....278
Получение отдельных частей пути....280
Определение размеров файлов и содержимого папок....282
Изменение списка файлов с помощью шаблонов....283
Проверка существования пути....285
Процесс чтения и записи файлов....286
Открытие файла с помощью функции open()....287
Чтение содержимого файла....288
Запись в файл....289
Сохранение переменных с помощью модуля shelve....290
Сохранение переменных с помощью функции pprint. pformat()....292
Проект: генерирование случайных билетов....293
Шаг 1. Сохранение данных в словаре....294
Шаг 2. Создание файлов билетов и перемешивание вопросов....295
Шаг 3. Создание вариантов ответов....296
Шаг 4. Запись содержимого в файлы билетов и ключей ответов....297
Проект: множественный буфер обмена....299
Шаг 1. Комментарии и настройка хранилища....300
Шаг 2. Сохранение содержимого буфера обмена с ключевым словом....300
Шаг 3. Построение списка ключевых слов и загрузка содержимого, ассоциированного с ключевым словом....301
Резюме....302
Контрольные вопросы....303
Учебные проекты....303
Расширение возможностей множественного буфера обмена....303
Программа Mad Libs....303
Поиск с помощью регулярных выражений....304
Глава 10. Управление файлами....306
Модуль shutil....307
Копирование файлов и папок....307
Перемещение и переименование файлов и папок....308
Безвозвратное удаление файлов и папок....310
Безопасное удаление с помощью модуля send2trash....311
Обход дерева каталогов....311
Сжатие файлов с помощью модуля zipfile....313
Чтение ZIP-файлов....314
Извлечение файлов из ZIP-архива....315
Создание ZIP-архивов и добавление в них файлов....316
Проект: переименование файлов с заменой американского формата дат европейским....316
Шаг 1. Создание регулярного выражения для поиска дат в американском формате....317
Шаг 2. Идентификация фрагментов имен файлов, соответствующих датам....319
Шаг 3. Создание нового имени файла и переименование файлов....320
Идеи для создания похожих программ....321
Проект: создание резервной копии папки в виде ZIP-файла....321
Шаг 1. Определение имени, которое следует присвоить ZIP-файлу....321
Шаг 2. Создание нового ZIP-файла....323
Шаг 3. Обход дерева каталогов и добавление содержимого в ZIP-файл....323
Идеи для создания похожих программ....325
Резюме....325
Контрольные вопросы....326
Учебные проекты....326
Выборочное копирование....326
Удаление ненужных файлов....326
Заполнение пропусков в нумерации файлов....327
Глава 11. Отладка....328
Генерирование исключений....329
Сохранение обратной трассировки стека вызовов в виде строки....331
Утверждения....333
Использование утверждений в программе, имитирующей работу светофора....334
Протоколирование....336
Использование модуля logging....336
Не выполняйте отладку с помощью функции print()....338
Уровень протоколирования....339
Отключение протоколирования....340
Запись сообщений в файл журнала....340
Отладчик Mu....341
Кнопка Continue....341
Кнопка Step In....341
Кнопка Step Over....342
Кнопка Step Out....342
Кнопка Stop....343
Отладка программы сложения чисел....343
Точки останова....345
Резюме....347
Контрольные вопросы....347
Учебный проект....348
Отладка программы, имитирующей подбрасывание монеты....348
Глава 12. Веб-скрейпинг....350
Проект: программа mapIt.ру с модулем webbrowser....351
Шаг 1. Определение URL-адреса....352
Шаг 2. Обработка аргументов командной строки....353
Шаг 3. Обработка содержимого буфера обмена и запуск браузера....354
Идеи для создания похожих программ....355
Загрузка файлов из Интернета с помощью модуля requests....355
Загрузка веб-страницы с помощью функции requests.get()....355
Проверка ошибок....356
Сохранение загруженных файлов на жестком диске....357
HTML....359
Ресурсы для изучения HTML....359
Краткие сведения об HTML....359
Просмотр HTML-кода веб-страницы....361
Открытие окна инструментов веб-разработки в браузере....361
Использование инструментов веб-разработки для поиска HTML-элементов....363
Парсинг HTML-разметки с помощью модуля bs4....365
Создание объекта BeautifulSoup на основе HTML-разметки....366
Поиск элемента с помощью метода select()....366
Получение данных из атрибутов элемента....369
Проект: открытие всех результатов поиска....369
Шаг 1. Получение аргументов командной строки и запрос поисковой страницы....370
Шаг 2. Поиск всех результатов....371
Шаг 3. Открытие браузера для каждого из результатов поиска....372
Идеи для создания похожих программ....373
Проект: загрузка всех комиксов на сайте XKCD....373
Шаг 1. Проектирование программы....374
Шаг 2. Загрузка веб-страницы....375
Шаг 3. Поиск и загрузка изображения комикса....376
Шаг 4. Сохранение изображения и поиск предыдущего комикса....377
Идеи для создания похожих программ....379
Управление браузером с помощью модуля selenium....379
Запуск браузера под управлением Selenium....380
Поиск элементов на веб-странице....382
Щелчок на веб-странице....383
Заполнение и отправка веб-форм....384
Отправка кодов специальных клавиш....385
Щелчки на кнопках браузера....386
Получение дополнительной информации о модуле selenium....386
Резюме....386
Контрольные вопросы....386
Учебные проекты....388
Программа для отправки электронной почты из командной строки....388
Загрузчик изображений из Интернета....388
2048....388
Верификация гиперссылок....388
Глава 13. Работа с таблицами Excel....390
Документы Excel....391
Установка модуля openpyxl....391
Чтение документов Excel....392
Открытие документов Excel с помощью модуля openpyxl....393
Получение списка листов рабочей книги....393
Получение ячеек рабочих листов....394
Преобразование буквенных и числовых обозначений столбцов....395
Получение строк и столбцов рабочих листов....396
Рабочие книги, листы и ячейки....398
Проект: чтение данных электронной таблицы....398
Шаг 1. Чтение электронной таблицы....399
Шаг 2. Заполнение структуры данных....400
Шаг 3. Запись результатов в файл....402
Идеи для создания похожих программ....403
Запись документов Excel....404
Создание и сохранение документов Excel....404
Создание и удаление рабочих листов....405
Запись значений в ячейки....406
Проект: обновление электронной таблицы....406
Шаг 1. Создание структуры, содержащей данные для обновления....407
Шаг 2. Проверка всех строк и обновление некорректных цен....408
Идеи для создания похожих программ....409
Настройка шрифтов ячеек....410
Объекты Font....410
Формулы....412
Настройка строк и столбцов....413
Настройка высоты строк и ширины столбцов....413
Объединение и отмена объединения ячеек....414
Закрепление областей....415
Диаграммы....416
Резюме....419
Контрольные вопросы....419
Учебные проекты....420
Генератор таблиц умножения....420
Программа для вставки пустых строк....420
Транспонирование электронной таблицы....421
Преобразование текстовых файлов в электронную таблицу....421
Преобразование электронной таблицы в текстовые файлы....422
Глава 14. Работа с приложением Google Таблицы....424
Установка и настройка модуля EZSheets....425
Получение файлов учетных данных и токенов....425
Отзыв файла учетных данных....427
Объекты Spreadsheet....428
Создание, выгрузка и отображение электронных таблиц....428
Атрибуты объекта Spreadsheet....430
Загрузка и выгрузка электронных таблиц....431
Удаление электронной таблицы....432
Объекты Sheet....432
Чтение и запись данных....433
Создание и удаление листов....438
Копирование листов....440
Квоты приложения Google Таблицы....441
Резюме....441
Контрольные вопросы....442
Учебные проекты....442
Загрузка данных из приложения Google Формы....442
Преобразование электронных таблиц в другие форматы....443
Поиск ошибок в электронной таблице....443
Глава 15. Работа с документами PDF и Word....446
PDF-документы....447
Извлечение текста из PDF-файлов....447
Дешифровка PDF-документов....449
Создание PDF-документов....450
Проект: объединение выбранных страниц из многих PDF-документов....456
Шаг 1. Поиск всех PDF-файлов....457
Шаг 2. Открытие PDF-файлов....457
Шаг 3. Добавление страниц....458
Шаг 4. Сохранение результатов....459
Идеи для создания похожих программ....459
Документы Word....460
Чтение документов Word....461
Получение всего текста из файла .docx....462
Стилевое оформление абзаца и объекты Run....463
Создание документов Word с нестандартными стилями....464
Атрибуты объекта Run....465
Запись документов Word....467
Добавление заголовков....469
Добавление разрывов строк и страниц....470
Добавление изображений....471
Создание документов PDF на основе документов Word....471
Резюме....472
Контрольные вопросы....473
Учебные проекты....473
PDF-паранойя....473
Персонализированные приглашения в виде документов Word....474
Взлом паролей PDF-файлов методом грубой силы....475
Глава 16. Работа с CSV-файлами и данными в формате JSON....476
Модуль csv....477
Объекты reader....478
Чтение данных из объекта reader в цикле for....479
Объекты writer....480
Именованные аргументы delimiter и lineterminator....481
Объекты DictReader и DictWriter....482
Проект: удаление заголовков из CSV-файла....484
Шаг 1. Цикл по всем CSV-файлам....485
Шаг 2. Чтение CSV-файла....486
Шаг 3. Запись CSV-файла без первой строки....487
Идеи для создания похожих программ....488
JSON и программные интерфейсы....488
Модуль json....489
Чтение данных JSON с помощью функции loads()....490
Запись данных JSON с помощью функции dumps()....490
Проект: получение текущего прогноза погоды....490
Шаг 1. Определение местоположения с помощью аргумента командной строки....491
Шаг 2. Загрузка данных JSON....492
Шаг 3. Запись данных JSON и вывод прогноза погоды....493
Идеи для создания похожих программ....495
Резюме....495
Контрольные вопросы....496
Учебный проект....496
Программа для преобразования данных из формата Excel в формат CSV....496
Глава 17. Работа с датой и временем, планирование заданий и запуск программ....498
Модуль time....499
Функция time.time()....499
Функция time.sleep()....501
Округление чисел....501
Проект: суперсекундомер....502
Шаг 1. Создание программы для отслеживания времени....503
Шаг 2. Отслеживание и вывод длительности замеров....503
Идеи для создания похожих программ....504
Модуль datetime....505
Тип данных timedelta....507
Пауза до наступления заданной даты....508
Преобразование объектов datetime в строки....509
Преобразование строк в объекты datetime....510
Обзор функций Python для работы с датой и временем....511
Многопоточность....512
Передача аргументов целевой функции потока....514
Проблемы параллелизма....515
Проект: многопоточный загрузчик файлов с сайта XKCD....515
Шаг 1. Модификация программы путем вынесения ее кода в функцию....516
Шаг 2. Создание и запуск потоков выполнения....517
Шаг 3. Ожидание завершения всех потоков....518
Запуск других программ из Python....519
Передача аргументов командной строки в функцию Popen()....521
Планировщик заданий Windows, демон launchd и планировщик cron....522
Открытие веб-сайтов с помощью Python....522
Запуск других сценариев Python....522
Открытие файлов приложениями, заданными по умолчанию....523
Проект: простая программа обратного отсчета времени....524
Шаг 1. Обратный отсчет....524
Шаг 2. Воспроизведение звукового файла....525
Идеи для создания похожих программ....526
Резюме....526
Контрольные вопросы....527
Учебные проекты....527
Наглядный секундомер....527
Загрузка веб-комиксов по расписанию....528
Глава 18. Отправка электронной почты и текстовых сообщений....530
Отправка и получение электронной почты с помощью Gmail API....531
Подключение Gmail API....532
Отправка электронной почты через учетную запись Gmail....533
Чтение электронной почты с помощью учетной записи Gmail....534
Поиск почты в учетной записи Gmail....535
Загрузка вложений из писем Gmail....536
SMTP....536
Отправка электронной почты по протоколу SMTP....537
Подключение к серверу SMTP....538
Отправка строки приветствия серверу SMTP....539
Начало TLS-шифрования....539
Регистрация на сервере SMTP....540
Отправка письма....540
Разрыв соединения с сервером SMTP....541
IMAP....541
Получение и удаление сообщений электронной почты по протоколу IMAP....542
Подключение к серверу IMAP....543
Регистрация на сервере IMAP....543
Поиск сообщений....544
Получение сообщений электронной почты и пометка их как прочитанных....548
Получение адресов электронной почты из необработанных сообщений....549
Получение тела письма из необработанного сообщения....550
Удаление писем....551
Разрыв соединения с сервером IMAP....552
Проект: рассылка напоминаний об уплате членских взносов....552
Шаг 1. Открытие файла Excel....553
Шаг 2. Поиск всех членов клуба, не уплативших взнос....554
Шаг 3. Отправка персональных напоминаний по электронной почте....555
Отправка текстовых сообщений с помощью почтового шлюза SMS....557
Отправка текстовых сообщений с помощью Twilio....558
Создание учетной записи Twilio....559
Отправка текстовых сообщений....560
Проект: модуль “Черкни мне”....562
Резюме....563
Контрольные вопросы....564
Учебные проекты....565
Произвольное распределение заданий путем рассылки по электронной почте....565
Напоминание о зонтике....565
Автоматический отказ от подписки....565
Дистанционное управление компьютером по электронной почте....566
Глава 19. Работа с изображениями....568
Основы компьютерной обработки изображений....569
Цвета и значения RGBA....569
Кортежи координат и прямоугольников....571
Обработка изображений с помощью модуля Pillow....572
Работа с объектами Image....573
Обрезка изображений....575
Копирование и вставка изображений в другие изображения....575
Изменение размеров изображения....578
Поворот и зеркальное отражение изображений....580
Изменение отдельных пикселей....582
Проект: добавление логотипа....584
Шаг 1. Открытие изображения логотипа....585
Шаг 2. Цикл по всем файлам и открытие изображений....586
Шаг 3. Масштабирование изображений....587
Шаг 4. Добавление логотипа и сохранение изменений....588
Идеи для создания похожих программ....590
Рисование на изображениях....590
Рисование фигур....591
Рисование текста....593
Резюме....595
Контрольные вопросы....596
Учебные проекты....596
Доработка основного проекта главы....597
Поиск папок с фотографиями на жестком диске....597
Персональные приглашения....599
Глава 20. Управление клавиатурой и мышью....600
Установка модуля PyAutoGUI....601
Настройка доступности в rnacOS....602
Контроль над клавиатурой и мышью....602
Паузы и безопасное завершение работы....602
Прекращение выполнения всех задач путем выхода из учетной записи....603
Управление перемещениями мыши....603
Перемещение указателя мыши....604
Получение позиции указателя....605
Управление взаимодействием с мышью....606
Щелчки мышью....606
Перетаскивание указателя мыши....607
Прокрутка....609
Планирование перемещений указателя....609
Работа с экраном....611
Получение снимка экрана....611
Анализ снимка экрана....611
Распознавание изображений....613
Получение информации об окне....614
Определение активного окна....615
Другие способы получения информации об окнах....616
Манипулирование окнами....617
Управление клавиатурой....619
Отправка строки, набранной на виртуальной клавиатуре....619
Названия клавиш....620
Нажатие и отпускание клавиш....622
Горячие клавиши....622
Настройка собственных сценариев GUI-автоматизации....623
Обзор функций PyAutoGUI....624
Проект: автоматическое заполнение формы....625
Шаг 1. Составление плана действий....627
Шаг 2. Настройка координат....628
Шаг 3. Начало ввода данных....630
Шаг 4. Обработка списков выбора и переключателей....631
Шаг 5. Отправка формы и ожидание....632
Отображение окон сообщений....633
Резюме....634
Контрольные вопросы....635
Учебные проекты....636
Как притвориться занятым....636
Использование буфера обмена для чтения текстового поля....636
Бот для отправки мгновенных сообщений....637
Руководство по созданию игрового бота....637
Приложение А. Установка сторонних модулей....640
Утилита pip....641
Инсталляция модулей....641
Установка модулей для редактора Mu....644
Приложение Б. Запуск программ....646
Запуск программ в окне терминала....647
Запуск сценариев Python в Windows....648
Запуск сценариев Python в macOS....649
Запуск сценариев Python в Ubuntu Linux....650
Запуск сценариев Python с отключенными проверками....651
Приложение В. Ответы на контрольные вопросы....652
Глава 1....653
Глава 2....653
Глава 3....655
Глава 4....656
Глава 5....657
Глава 6....657
Глава 7....658
Глава 8....659
Глава 9....659
Глава 10....660
Глава 11....660
Глава 12....661
Глава 13....662
Глава 14....663
Глава 15....664
Глава 16....664
Глава 17....665
Глава 18....665
Глава 19....666
Глава 20....666
Предметный указатель....668
В полностью переработанном втором издании книги вы узнаете, как использовать Python для написания программ, способных за минуту сделать то, на что раньше уходили часы ручного труда, причем никакого опыта программирования не потребуется! Вы освоите основы Python и исследуете стандартную библиотеку модулей, позволяющих решать самые разнообразные задачи, такие как сбор данных с веб-сайтов, чтение документов в формате PDF и Word и автоматизация щелчков мыши.
Во второе издание книги включена новая глава, посвященная проверке вводимых данных. Также рассмотрены вопросы автоматизации работы с приложениями Gmail и Google Таблицы и даны советы по автоматическому обновлению CSV-файлов. Вы узнаете, как писать программы, которые легко выполняют следующие задачи автоматизации:
Пошаговые инструкции помогут лучше понять, как работает та или иная программа, а обновленные учебные проекты в конце каждой главы дадут возможность применить полученные навыки для автоматизации аналогичных задач.
Не тратьте время на выполнение рутинной работы. Даже не имея опыта программирования, благодаря данной книге вы вполне сможете заставить компьютер сделать все необходимое!