Введение....17
Об авторе....19
От издательства....21
Глава 1. Введение в программирование на Python....22
Что такое Python....22
История Python....23
Установка Python и среды разработки....23
Интерпретатор Python и REPL (Read-Eval-Print Loop)....24
Ваша первая программа на Python....25
Синтаксис и основные концепции программирования....25
Запуск программ на Python....26
Основные методы отладки....27
Стиль кода Python и лучшие практики....28
Ресурсы для изучения Python....28
Глава 2. Переменные, типы данных и операторы....30
Соглашения об именовании переменных....30
Основные типы данных....31
Числовые типы данных....32
Строковый тип данных....32
Булев тип данных....33
Приведение типов....34
Арифметические операторы....35
Операторы сравнения....36
Логические операторы....37
Приоритет и ассоциативность операторов....38
Задания для самопроверки....38
Глава 3. Управляющие структуры: условные операторы и циклы....40
Условные операторы: if, elif и else....40
Булевы выражения и операторы сравнения....41
Циклы: for и while....42
Операторы break, continue и pass....43
Вложенные циклы и условия....45
Задания для самопроверки....46
Глава 4. Функции и модули....47
Определение и вызов функций....47
Параметры и аргументы функции....48
Позиционные аргументы....48
Параметры ключевых слов....48
Параметры переменной длины....49
Операторы возврата и возвращаемые значения....50
Область действия функции и локальные переменные....51
Глобальные переменные и оператор global....52
Лямбда-функции....53
Встроенные функции....54
Модули и оператор import....54
Создание и использование модулей....55
Стандартная библиотека Python....56
Задания для самопроверки....57
Глава 5. Структуры данных: cписки, кортежи и словари....58
Списки в Python....58
Кортежи в Python....59
Словари в Python....60
Списковое включение....61
Сортировка и поиск в структурах данных....62
Продвинутые методы работы со структурами данных....63
Копирование и клонирование структур данных....63
Нарезка списка и расширенные нарезки....64
Множественные входные последовательности в списковых включениях....65
Словарные включения....66
Множества и операции с ними....67
Стеки и очереди со списками....68
Продвинутые методы сортировки....69
Бинарный поиск....70
Работа с вложенными структурами данных....71
Задания для самопроверки....72
Глава 6. Ввод и вывод....74
Стандартный ввод-вывод....74
Чтение пользовательского ввода с помощью input()....75
Ввод и вывод файлов....75
Открытие файлов....76
Чтение и запись данных....76
Закрытие файлов....77
Работа с двоичными файлами....77
Обработка ошибок ввода-вывода при работе с файлами....78
Задания для самопроверки....79
Глава 7. Объектно-ориентированное программирование....81
Классы и объекты....81
Определение классов....82
Атрибуты и методы класса....83
Атрибуты экземпляра и методы....84
Конструкторы и деструкторы....85
Наследование....86
Переопределение метода....87
Полиморфизм....88
Абстрактные классы и интерфейсы....89
Инкапсуляция и сокрытие данных....90
Абстракция данных и инкапсуляция данных....91
Модификаторы частного доступа....92
Перегрузка операторов....93
Класс и статические методы и переменные....94
Обработка исключений в ООП....95
Сборка мусора и управление памятью....96
Продвинутые темы в ООП....96
Декораторы....96
Метаклассы....97
Множественное наследование....98
Миксины и компоновщик....98
Порядок разрешения методов (MRO)....100
Утиная типизация и EAFP....101
Monkey patch и динамические классы....102
Фабрики классов и метапрограммирование....103
Рефлексия и интроспекция ....104
Задания для самопроверки....104
Глава 8. Обработка исключений....106
Синтаксис обработки исключений....107
Синтаксис блоков try-except....107
Обработка исключений с помощью блоков except....107
Обработка нескольких исключений с помощью одного блока except....108
Использование блоков else и finally в конструкциях try-except....109
Множественные блоки Except и цепочки исключений ....110
Генерация исключений....111
Исключения, определяемые пользователем....112
Возможности блока finally....112
Лучшие практики и советы по обработке исключений....113
Сообщения об ошибках....113
Изящный сбой....114
Тестирование обработки исключений....115
Документирование....115
Задания для самопроверки....116
Глава 9. Регулярные выражения....118
Сопоставление текста с помощью регулярных выражений....119
Специальные символы и экранирование....119
Классы символов и выражения в квадратных скобках....120
Основные классы символов....121
Сокращенные классы символов....121
Вложенные классы символов....122
Квантификаторы и альтернация....122
Квантификатор *....123
Квантификатор +....123
Квантификатор ?....124
Квантификатор { }....125
Альтернация и |....125
Квантификаторы и альтернация: лучшие практики и советы....126
Группировка и захват....127
Использование круглых скобок для группировки....127
Захват совпадений с помощью групп....128
Группы без захвата....129
Именованные группы....130
Группировка и захват: лучшие практики и советы....131
Обратные ссылки и подстановки....132
Использование обратных ссылок в регулярных выражениях....133
Замена совпадений с помощью регулярных выражений....134
Обратные ссылки и подстановки: лучшие практики и советы....135
Опережающие и ретроспективные проверки....135
Положительная опережающая проверка....136
Отрицательная опережающая проверка....137
Положительная ретроспективная проверка....138
Отрицательная ретроспективная проверка....139
Лучшие практики и советы....139
Лучшие практики и советы по использованию регулярных выражений....140
Понимание проблемы перед написанием регулярного выражения....140
Простота и читабельность регулярного выражения....141
Тестирование и отладка регулярных выражений....142
Использование встроенных функций и библиотек вместо регулярных выражений....142
Баланс между гибкостью и производительностью в регулярных выражениях....143
Работа с граничными случаями и специальными символами....144
Задания для самопроверки....145
Глава 10. Работа с библиотеками и API....146
Установка и управление библиотеками с помощью pip....146
Установка библиотек с помощью pip....147
Управление установленными библиотеками с помощью pip....148
Обновление и удаление библиотек с помощью pip....149
Лучшие практики использования pip....149
Использование стандартных библиотек....150
Библиотеки и API сторонних производителей....151
Поиск и оценка библиотек и API сторонних производителей....151
Установка и импорт библиотек сторонних производителей....152
Общие библиотеки и API сторонних производителей....153
Лучшие практики использования библиотек и API сторонних производителей....153
Аутентификация и авторизация с помощью API....154
API-ключи....155
OAuth....155
Токены....156
Лучшие практики аутентификации и авторизации API....157
Запросы и ответы API....157
HTTP-запросы....158
Коды состояния ответа HTTP....159
Парсинг ответов API....160
Обработка ошибок в ответах API....160
Лучшие практики работы с API....162
Работа с данными JSON и XML....162
Парсинг данных JSON....163
Создание данных в формате JSON....164
Парсинг данных XML....164
Создание данных XML....165
Лучшие практики работы с данными JSON и XML....166
Обработка ошибок и отладка в библиотеках и API....166
Работа с ошибками в библиотеках....167
Библиотеки и API для отладки....167
Лучшие практики обработки ошибок и отладки....167
Работа с библиотеками и API Лучшие практики и советы....168
Задания для самопроверки....169
Глава 11. Отладка и тестирование....170
Техники и инструменты отладки....170
Стратегии отладки....170
Оператор print и логирование....171
Отладчик Python (PDB)....173
Отладка с помощью точек останова и точек наблюдения....174
Отладка проблем с памятью....175
Профилирование и оптимизация производительности....176
Отладка распространенных ошибок и проблем....177
Ошибки синтаксиса....177
Ошибки отступов....178
Ошибки именования....178
Ошибки типов....179
Ошибки атрибутов....180
Ошибки индекса и ключа....181
ValueError и TypeError....182
Ошибки ImportError и ModuleNotFound....183
FileNotFoundError и IOError....185
Обработка исключений и возвратов....186
Отладка в интегрированных средах разработки (IDE)....187
Отладка в PyCharm....188
Отладка в Visual Studio Code....189
Отладка в Eclipse с помощью PyDev....190
Отладка в блокнотах Jupyter Notebooks....191
Функции и советы по отладке, специфичные для IDE....192
Введение в тестирование и разработку на основе тестирования (TDD)....193
Важность тестирования....193
Виды тестирования....194
Обзор разработки на основе тестирования (TDD)....195
Юнит-тестирование в Python....196
Написание тестируемого кода....197
Автоматизация тестирования и непрерывная интеграция....198
Юнит-тестирование с помощью Pytest....199
Установка и настройка Pytest....200
Написание тестовых функций с помощью Pytest....201
Фикстуры Pytest. Настройка и завершение....202
Утверждения и соответствия (matchers) в Pytest....204
Запуск и настройка Pytest....204
Параметризация тестов и тестирование на основе данных....206
Плагины и расширения Pytest....207
Тестовое покрытие и качество кода....208
Понятие тестового покрытия....208
Измерение тестового покрытия с помощью Coverage.py....209
Анализ отчетов о покрытии....210
Улучшение тестового покрытия....211
Метрики качества кода....212
Линтинг и статический анализ....213
Интеграция проверок качества кода в рабочий процесс....215
Интеграционное тестирование и непрерывная интеграция (CI)....216
Написание интеграционных тестов....216
Инструменты и фреймворки для интеграционного тестирования....217
Непрерывная интеграция: обзор....218
Настройка CI-пайплайна....220
Преимущества сочетания интеграционного тестирования и CI....221
Отладка и тестирование: лучшие практики и советы....222
Общие советы по отладке....222
Лучшие практики тестирования....223
Советы по разработке на основе тестирования....224
Код-ревью и совместная работа....225
Непрерывное совершенствование отладки и тестирования....226
Баланс между покрытием тестами и сопровождаемостью....227
Чего следует избегать при отладке и тестировании....228
Задания для самопроверки....229
Глава 12. Введение в Data Science на Python....231
Что такое Data Science....231
Роль Python в Data Science....232
Обзор библиотек и инструментов....233
Применение Data Science в реальном мире с помощью Python....235
Установка библиотек Data Science в Python....236
NumPy: массивы и матрицы....237
Создание массивов NumPy....238
Атрибуты и свойства массива....239
Индексация и нарезка массивов....240
Операции с массивами и трансляция....241
Матричные операции и линейная алгебра....243
Продвинутые возможности NumPy....245
Практическое применение NumPy в Data Science....246
Pandas: манипулирование данными и их анализ....248
Ключевые структуры данных: Series и DataFrame....249
Импорт и экспорт данных....250
Очистка и предварительная обработка данных....251
Выбор и индексация данных....253
Агрегирование и группировка данных....254
Слияние, объединение и конкатенация данных....255
Функциональность временных рядов и дат....257
Визуализация с помощью Pandas....258
Практическое применение Pandas в Data Science....259
Matplotlib: визуализация данных....261
Архитектура Matplotlib....261
Создание основных типов графиков....262
Настройка графиков....264
Продвинутые техники построения графиков....265
Сохранение и экспорт графиков....266
Интеграция Matplotlib с Pandas....267
Лучшие практики и советы по визуализации данных с помощью Matplotlib....269
Seaborn: продвинутая визуализация данных....270
Seaborn и Matplotlib: ключевые различия....271
Типы графиков Seaborn....272
Настройка графиков Seaborn....278
Темы и стили Seaborn....279
Интеграция Seaborn с Pandas....280
Продвинутые техники Seaborn....281
Лучшие практики и советы по визуализации данных с помощью Seaborn....283
Scikit-learn: машинное обучение....284
Ключевые понятия и терминология....284
Предварительная обработка данных с помощью Scikit-learn....285
Алгоритмы контролируемого обучения....287
Алгоритмы неконтролируемого обучения....289
Оценка и выбор модели....290
Настройка гиперпараметров....291
Интеграция Scikit-learn с Pandas и Numpy....292
Лучшие практики и советы по машинному обучению с помощью Scikit-learn....294
TensorFlow: глубокое обучение....295
Ключевые компоненты TensorFlow....295
Архитектура TensorFlow....297
TensorFlow Eager Execution....298
Построение нейронных сетей с помощью TensorFlow....299
Обучение и оценка моделей в TensorFlow....300
Расширения и библиотеки TensorFlow....301
Практическое применение TensorFlow в глубоком обучении....303
Keras: высокоуровневое глубокое обучение....304
Ключевые особенности Keras....305
Параметры бэкенда Keras....305
Построение нейронных сетей с помощью Keras....306
Обучение и оценка моделей в Keras....308
Сохранение и загрузка моделей в Keras....310
Настройка Keras: пользовательские слои, функции потерь и метрики....311
Практическое применение Keras в глубоком обучении....312
Обработка естественного языка с помощью NLTK....315
Установка и настройка NLTK....316
Токенизация....316
Морфологическая разметка (POS)....317
Распознавание именованных сущностей (NER)....319
Парсинг и чанкинг....320
Классификация текста с помощью NLTK....322
Анализ тональности текста....324
Суммаризация текста....325
Практическое применение NLTK в NLP....327
Лучшие практики и советы по Data Science....328
Понимание проблемы и определение целей....328
Сбор и предварительная обработка данных....329
Конструирование и выбор признаков....330
Выбор и оценка моделей....331
Интерпретируемость и объяснимость....332
Коммуникация и визуализация....333
Масштабируемость и развертывание....334
Совместная работа и контроль версий....336
Постоянное обучение и совершенствование....337
Этические аспекты в Data Science....338
Задания для самопроверки....339
Глава 13. Веб-скрапинг с помощью Python....341
Области применения веб-скрапинга....342
Правовые и этические соображения....343
Компоненты веб-страницы....344
Рабочий процесс веб-скрапинга....345
Основы HTML....346
Структура HTML-документа....346
Теги и элементы HTML....347
Атрибуты HTML....349
Таблицы и списки HTML....350
HTML-формы и элементы ввода....352
Концепция объектной модели документа (DOM)....353
Библиотеки и инструменты веб-скрапинга....354
Requests: HTTP для людей....354
Beautiful Soup: парсинг и навигация по HTML....355
lxml: высокопроизводительный парсер HTML и XML....357
Selenium: автоматизация браузера для веб-скрапинга....358
Scrapy: комплексная платформа для веб-скрапинга....360
Выбор правильного инструмента для веб-скрапинга....362
Извлечение данных из веб-страниц....363
Определение целевых данных....363
Изучение исходного кода веб-страницы....364
Навигация по структуре HTML....365
Работа с пагинацией и бесконечной прокруткой....366
Работа с динамическим содержимым и JavaScript....367
Работа с формами и сессиями....368
Взаимодействие с формами....369
Отправка форм и работа с перенаправлениями....369
Управление сессиями и файлами куки....370
Обработка аутентификации и входа в систему....371
Советы по работе с формами и сессиями....373
Парсинг XML и JSON....374
Парсинг XML в Python....374
Парсинг JSON в Python....375
Конвертация данных из XML в JSON и наоборот....376
Работа с API и структурированными данными....377
Продвинутые методы веб-скрапинга....378
Обработка AJAX-запросов и асинхронная загрузка....378
Обход капчи и мер по борьбе с ботами....380
Работа с прокси-серверами и ротация IP-адресов....381
Веб-скрапинг с использованием многопоточности и параллелизма....383
Эффективное хранение и обработка полученных данных....385
Мониторинг и сопровождение веб-скраперов....386
Этические и правовые соображения....387
Лучшие практики и советы по веб-скрапингу....388
Планирование проекта веб-скрапинга....388
Выбор правильных инструментов и библиотек....389
Относитесь с уважением к ресурсам сайта....390
Обработка ошибок и механизмы повторной попытки ....390
Внедряйте надежные решения для хранения данных....391
Мониторинг и сопровождение веб-скраперов....392
Документация кода и процессов веб-скрапинга....393
Задания для самопроверки....394
Глава 14. Программирование графических интерфейсов с помощью Python....396
Преимущества приложений с GUI....396
Популярные библиотеки GUI....397
Выбор правильной GUI-библиотеки ....398
Основные концепции программирования GUI....399
Наборы инструментов и фреймворки GUI....400
Tkinter....400
PyQt и PySide....401
Kivy....403
wxPython....404
PyGTK и PyGObject....405
PySimpleGUI....406
Сравнение наборов инструментов и фреймворков GUI....407
Создание GUI-приложений с помощью Tkinter....408
Установка и настройка Tkinter....409
Создание базового окна Tkinter....409
Виджеты Tkinter и их свойства....410
Менеджеры геометрии: Pack, Grid и Place....413
Обработка событий в Tkinter....415
Создание наследуемых виджетов и компонентов....417
Создание приложения Tkinter: пошаговый пример....419
Отладка и устранение неполадок в приложениях Tkinter....421
Продвинутые техники программирования GUI....422
Работа с несколькими окнами и диалогами....422
Настройка стилей и тем виджетов....424
Реализация функциональности перетаскивания....426
Создание и управление таймерами....428
Обработка событий клавиатуры и мыши....430
Многопоточность и конкурентность в GUI-приложениях ....432
Интеграция веб-контента и API....434
Развертывание и распространение....436
Лучшие практики и советы по программированию GUI....438
Проектирование удобных для пользователя интерфейсов....438
Организация и модульность кода....439
Оптимизация производительности....440
Обработка ошибок и обратная связь с пользователем....441
Доступность и интернационализация....442
Тестирование и отладка....443
Документация и руководства пользователя....445
Задания для самопроверки....446
Заключение....447
Список источников....448
Добро пожаловать в увлекательный мир программирования на языке Python! Независимо от того, начинающий вы или опытный программист, вы вооружитесь знаниями и навыками, необходимыми для успешного освоения языка. Python, известный своей простотой и универсальностью, завоевал огромную популярность среди разработчиков во всем мире. Благодаря удобному синтаксису и широкой библиотечной поддержке он идеально подходит для решения широкого спектра задач – от веб-разработки и анализа данных до программирования графических интерфейсов. Книга представляет собой комплексное руководство по изучению языка Python с нуля.