Об авторах....16
О научных редакторах....17
Предисловие....18
Для кого эта книга....19
Структура издания....20
Как получить максимум пользы от книги....21
Цветные иллюстрации....21
Примеры исходного кода....21
Условные обозначения....21
От издательства....22
О научных редакторах русскоязычного издания....22
Глава 1. Плавное погружение в Python....23
Основы программирования....24
Добро пожаловать в мир Python....26
Коротко о Python....26
Переносимость....26
Логичность....27
Скорость разработки....27
Обширная библиотека....27
Качество программного обеспечения....27
Интеграция с другим ПО....28
Использование в области науки о данных....28
Удовольствие от работы....28
Недостатки Python....28
Как Python используют сегодня....29
Настройка окружения....31
Установка Python....31
Консоль Python....34
Несколько слов о виртуальных окружениях....35
Установка сторонних библиотек....39
Консоль....40
Как запустить программу на Python....40
Запуск скриптов на Python....40
Запуск интерактивной оболочки Python....41
Запуск Python в качестве сервиса....42
Запуск Python в качестве графического приложения....42
Структура кода Python....43
Как использовать модули и пакеты....45
Модель выполнения кода в Python....47
Имена и пространства имен....47
Области видимости....49
Рекомендации по написанию хорошего кода....52
Культура Python....53
Несколько слов об IDE....55
Несколько слов об ИИ....55
Резюме....56
Глава 2. Встроенные типы данных....57
Всё — объекты....57
Изменяемость....58
Числа....60
Целые числа (int)....60
Логический тип (bool)....62
Вещественные числа (float)....64
Комплексные числа....65
Дроби и десятичные числа....66
Неизменяемые последовательности....67
Строки и байты....67
Кортежи....72
Изменяемые последовательности....73
Списки....73
Массивы байтов (bytearrays)....77
Множества....78
Отображения: словари....80
Типы данных....84
Дата и время....84
Модуль collections....89
Перечисления....93
Заключительные замечания....94
Кеширование малых значений....95
Как выбрать подходящую структуру данных....95
Об индексации и срезах....97
Об именах....98
Резюме....99
Глава 3. Условные конструкции и циклы....100
Условное программирование....100
Оператор if....101
Особый случай else: elif....101
Вложенные операторы if....103
Тернарный оператор....104
Сопоставление с шаблоном....105
Циклы....106
Цикл for....106
Итераторы и итерируемые объекты....109
Перебор нескольких последовательностей....109
Цикл while....111
Операторы break и continue....113
Особый блок else после цикла....115
Выражения присваивания....117
Операторы и выражения....117
Моржовый оператор (:=)....118
Предупреждение....119
Примеры программ....119
Генератор простых чисел....120
Пример со скидками....122
Модуль itertools....124
Бесконечные итераторы....124
Итераторы с остановкой по короткой последовательности....124
Комбинаторные генераторы....125
Резюме....126
Глава 4. Функции — строительные блоки кода....127
Зачем нужны функции....128
Уменьшение дублирования кода....129
Разбиение сложной задачи....129
Сокрытие деталей реализации....130
Улучшение читабельности....131
Улучшение отслеживаемости....132
Области видимости и разрешение имен....132
Операторы global и nonlocal....134
Входные параметры....136
Передача аргументов....136
Присваивание имени параметра....137
Изменение изменяемого объекта....138
Передача аргументов....139
Определение параметров....142
Возврат значений....151
Возврат нескольких значений....152
Несколько полезных советов....153
Рекурсивные функции....154
Анонимные функции....155
Атрибуты функций....156
Встроенные функции....158
Документирование кода....158
Импорт объектов....159
Относительные импорты....161
Заключительный пример....162
Резюме....163
Глава 5. Генераторы и включения....164
Функции map(), zip() и filter()....166
Функция map()....166
Функция zip()....169
Функция filter()....170
Включения....171
Вложенные включения....172
Фильтрация во включении....173
Словарные включения....175
Включения множеств....176
Генераторы....177
Генераторные функции....177
Другие инструменты, помимо функции next()....180
Выражение yield from....182
Генераторные выражения....183
Несколько слов о производительности....185
Не увлекайтесь включениями и генераторами....188
Локализация имен....192
Поведение встроенных функций, напоминающее генераторы....193
Еще один пример напоследок....194
Резюме....196
Глава 6. ООП, декораторы и итераторы....197
Декораторы....197
Фабрика декораторов....203
Объектно-ориентированное программирование....205
Наипростейший класс в Python....205
Пространства имен классов и объектов....206
Затенение атрибутов....207
Аргумент self....208
Инициализация экземпляра....209
ООП подразумевает повторное использование кода....210
Обращение к базовому классу....215
Множественное наследование....217
Статические методы и методы класса....221
Приватные методы и искажение имен....225
Декоратор property....228
Декоратор cached_property....229
Перегрузка операторов....231
Полиморфизм (краткий обзор)....232
Классы данных....233
Создание собственного итератора....234
Резюме....235
Глава 7. Исключения и контекстные менеджеры....236
Исключения....236
Генерация исключений....238
Определение собственных исключений....239
Трассировки....239
Обработка исключений....240
Группы исключений....245
Исключения как инструмент управления потоком выполнения....249
Контекстные менеджеры....250
Контекстные менеджеры на базе классов....253
Контекстные менеджеры на базе генераторов....255
Резюме....257
Глава 8. Работа с файлами и хранение данных....258
Управление файлами и каталогами....258
Открытие файлов....259
Чтение из файла и запись в файл....261
Проверка существования файлов и каталогов....263
Управление файлами и каталогами....264
Временные файлы и каталоги....267
Содержимое каталогов....267
Сжатие файлов и каталогов....268
Форматы обмена данными....269
Работа с JSON....270
Ввод/вывод, потоки и запросы....277
Управление объектами в памяти....277
Выполнение HTTP-запросов....278
Сохранение данных на диске....281
Сериализация данных с помощью модуля pickle....281
Сохранение данных с помощью модуля shelve....283
Сохранение данных в базу данных....284
Файлы конфигурации....291
Популярные форматы....291
Резюме....295
Глава 9. Криптография и токены....296
Зачем нужна криптография....296
Полезные рекомендации....297
Модуль hashlib....297
Алгоритм HMAC....301
Модуль secrets....302
Случайные объекты....302
Генерация токенов....302
Сравнение дайджестов....304
Токены JWT....305
Зарегистрированные утверждения....308
Применение асимметричных (публичных) алгоритмов....311
Полезные источники....313
Резюме....313
Глава 10. Тестирование....314
Тестирование приложения....315
Структура теста....317
Рекомендации по написанию тестов....318
Модульное тестирование....320
Тестирование генератора CSV....322
Разработка через тестирование....339
Резюме....342
Глава 11. Отладка и профилирование....343
Приемы отладки....344
Отладка с помощью функции print()....344
Отладка с помощью специальной функции....345
Отладка с помощью отладчика Python....347
Анализ логов....349
Другие приемы....353
Поиск справочной информации....354
Рекомендации по устранению неполадок....354
Где искать....354
Использование тестов для отладки....355
Мониторинг....355
Профилирование кода на Python....356
Когда стоит профилировать....359
Измерение времени выполнения....360
Резюме....361
Глава 12. Аннотации типов....362
Система типов в Python....362
Утиная типизация....363
История появления аннотаций типов....364
Преимущества аннотаций типов....366
Аннотации типов....366
Аннотирование функций....367
Тип Any....368
Псевдонимы типов....368
Специальные формы....369
Обобщенные типы....370
Аннотирование переменных....371
Аннотирование контейнеров....372
Аннотирование кортежей....373
Абстрактные базовые классы....375
Особые формы типизации....378
Аннотация переменных параметров....379
Протоколы....380
Статический анализатор типов mypy....383
Полезные ресурсы....386
Резюме....386
Глава 13. Введение в Data Science....387
IPython и Jupyter Notebook....388
Использование Anaconda....390
Запуск Jupyter Notebook....390
Работа с данными....391
Подготовка блокнота....392
Подготовка данных....392
Очистка данных....396
Создание DataFrame....397
Вычисление метрик....403
Сохранение DataFrame в файл....407
Визуализация результатов....407
Что дальше....415
Резюме....416
Глава 14. Введение в разработку API....417
Протокол передачи гипертекста (HTTP)....417
Как работает HTTP....418
Коды состояния....419
Знакомство с API....420
Что такое API....420
Зачем нужны API....421
Протоколы API....422
Форматы обмена данными в API....422
API для железнодорожной системы....423
Проектирование базы данных....424
Основная настройка и конфигурация....430
Конечные точки Station....431
Аутентификация пользователя....445
Документирование API....448
Что дальше....449
Резюме....450
Глава 15. Консольные приложения (CLI)....451
Аргументы командной строки....452
Позиционные аргументы....452
Параметры....452
Подкоманды....453
Анализ аргументов....454
Создание CLI-клиента для работы с API железнодорожной системы....456
Взаимодействие с API железнодорожной системы....458
Создание интерфейса командной строки....458
Конфигурационные файлы и секреты....460
Создание подкоманд....463
Реализация подкоманд....466
Дополнительные ресурсы и инструменты....467
Резюме....468
Глава 16. Упаковка и публикация приложений на Python....469
Python Package Index....469
Упаковка с помощью Setuptools....471
Структура проекта....472
Метаданные пакета....476
Доступ к метаданным в коде....483
Создание и публикация пакетов....485
Сборка....485
Публикация....487
Советы по запуску новых проектов....489
Другие файлы....490
Альтернативные инструменты....490
Дополнительные материалы....492
Резюме....492
Глава 17. Задачи по программированию....494
Проект Advent of Code....495
Camel Cards....496
Cosmic Expansion....501
Заключение....508
Другие сайты с задачами по программированию....509
Резюме....510
Всеобъемлющее современное руководство по программированию на Python, охватывающее фундаментальные идеи и практические приемы!
Вы научитесь писать собственные программы и получите четкое представление о том, куда двигаться дальше и как использовать полученные знания. Изучение Python подкреплено практикой — огромным количеством примеров приложений. К концу книги вы будете готовы применить полученные знания и создать несколько реальных проектов. Вы научитесь эффективно использовать Python в анализе данных, веб-разработке и автоматизации задач.
Книга включает описание новейших возможностей, появившихся в версиях Python 3.9–3.12, в том числе главы об аннотациях типов и консольных приложениях, а также примеры, демонстрирующие современные практики веб-разработки на Python.
В подготовке издания принимали участие: Группа Arenadata.