Простой Python. Современный стиль программирования. 3-е изд.

Простой Python. Современный стиль программирования. 3-е изд.

Простой Python. Современный стиль программирования. 3-е изд.
Автор: Билл Любанович
Оригинальное название: Introducing Python: Modern Computing in Simple Packages. 3 Ed
Оригинальный правообладатель: O’Reilly Media, Inc.
Дата выхода: 2026
Издательство: Спринт Бук
Количество страниц: 624
Размер файла: 3,5 МБ
Тип файла: PDF
Добавил: it-books
 Дополнительные материалы 

Предисловие....25

Для кого эта книга....26

Что нового в третьем издании....26

Структура книги....26

Версии Python....29

Об авторе....30

Условные обозначения....31

Использование примеров кода....32

Часть I. Замок....35

Глава 1. Введение....37

Тайны....37

Маленькие программы....39

Настройка окружения....42

Установка Python....42

Обновление Python....42

Запуск программ на Python....43

Интерактивный интерпретатор Python....43

Файлы с кодом на Python....44

Встроенные возможности Python....45

Стандартная библиотека Python....45

Сторонние пакеты Python....45

Более сложный пример....45

Итоги и взгляд вперед....48

Глава 2. Типы и переменные....49

Компьютер....49

Биты и байты....50

Многобайтовые типы....52

Переменные....53

Присваивание значения переменной....53

Изменение значения переменной....56

Удаление переменной....57

Имена переменных....57

Соглашения об именовании....58

Типы в Python....59

Задание значений....60

Объекты как коробки в памяти....60

Итоги и взгляд вперед....61

Упражнения....61

Глава 3. Числа....62

Булевы значения....62

Целые числа....63

Целочисленные литералы....64

Операции с целыми числами....65

Целые числа и переменные....67

Приоритет операций....69

Системы счисления....70

Преобразования типов....72

Насколько большими могут быть значения типа int....74

Числа с плавающей точкой....75

Точность арифметики с плавающей точкой....77

Дроби....77

Десятичные дроби....78

Математические функции....78

Итоги и взгляд вперед....79

Упражнения....79

Глава 4. Строки....80

Создаем строки с помощью кавычек....81

Создаем строки с помощью str()....84

Создаем управляющие последовательности с помощью ....84

Объединяем строки с помощью ....85

Размножаем строки с помощью ....86

Извлекаем символ с помощью [ ]....86

Извлекаем подстроки с помощью срезов....87

Измеряем длину строки с помощью len()....90

Деление строки с помощью split()....90

Объединяем строки с помощью join()....91

Заменяем символы с помощью replace()....91

Префиксы и суффиксы....92

Устраняем символы с помощью strip()....92

Поиск и выбор....93

Регистр....95

Выравнивание....96

Форматирование....96

Старый стиль: %....96

Новый стиль: {} и format()....99

Новейший стиль: f-строки....101

Итоги и взгляд вперед....102

Упражнения....103

Глава 5. Строки и массивы байтов....104

Строки байтов....104

Создание с помощью кавычек....104

Создание с помощью bytes()....105

Создание из шестнадцатеричной строки....106

Декодирование и кодирование текстовых строк и строк байтов....106

Преобразование в шестнадцатеричную строку....107

Получение одного байта по [смещению]....107

Получение среза....107

Объединение с помощью ....108

Размножение с помощью ....108

Массивы байтов....108

Создание с помощью bytearray()....108

Получение одного байта по [смещению]....109

Получение нескольких байтов с помощью среза....109

Изменение одного байта по [смещению]....110

Изменение нескольких байтов с помощью replace()....110

Изменение нескольких байтов с помощью среза....110

Вставка байта с помощью insert()....110

Добавление одного байта с помощью append()....111

Добавление нескольких байтов с помощью extend()....111

Объединение с помощью ....111

Размножение с помощью ....111

Итоги и взгляд вперед....112

Упражнения....112

Глава 6. Операторы if и match....113

Комментируем с помощью ....113

Продлеваем строки с помощью ....114

Сравниваем с помощью if, elif и else....115

Что есть истина....119

Выполняем несколько сравнений с помощью in....120

Новое: I Am the Walrus....121

Сопоставление с помощью match....122

Простые совпадения....122

Структурные соответствия....123

Итоги и взгляд вперед....124

Упражнения....124

Глава 7. Операторы while и for....125

Повторение с помощью while....125

Прерываем цикл с помощью break....126

Пропускаем итерации с помощью continue....126

Проверка использования break с помощью else....127

Выполняем итерации с помощью for и in....127

Прерываем цикл с помощью break....128

Пропускаем итерации с помощью continue....128

Проверка использования break с помощью else....128

Генерируем числовые последовательности с помощью range()....129

Итоги и взгляд вперед....130

Упражнения....130

Глава 8. Кортежи и списки....131

Кортежи....131

Создание кортежей с помощью запятых и оператора ()....132

Создание кортежей с помощью tuple()....134

Получение элементов по [смещению]....134

Объединение с помощью ....134

Размножение с помощью ....134

Сравнение....135

Итерации с помощью for и in....135

Изменение возможно?....135

Списки....136

Создание с помощью [ ]....136

Создание или преобразование с помощью list()....136

Создание из строки с помощью split()....137

Получение элементов по [смещению]....137

Получение элементов с помощью срезов....138

Добавление элемента в конец списка с помощью append()....139

Добавление элемента на определенное место с помощью insert()....139

Размножение элементов с помощью ....140

Объединение списков с помощью extend() или ....140

Изменение элемента по [смещению]....141

Изменение элемента с помощью среза....141

Удаление элемента по смещению с помощью del....142

Удаление элемента по значению с помощью remove()....142

Получение и удаление элемента по смещению с помощью pop()....142

Удаление всех элементов с помощью clear()....143

Определение смещения по значению с помощью index()....143

Проверка наличия элемента с помощью in....144

Подсчет количества вхождений значения с помощью count()....144

Преобразование списка в строку с помощью join()....144

Изменение порядка элементов с помощью sort() или sorted()....145

Получение длины списка с помощью len()....146

Присваивание с помощью ....146

Копирование списков с помощью copy(), list() или срезов....147

Копирование содержимого списка с помощью deepcopy()....147

Сравнение списков....149

Итерации с помощью for и in....149

Итерации по нескольким последовательностям с помощью zip()....150

Итерации по нескольким последовательностям с помощью zip_longest()....151

Создание списка с помощью спискового включения....152

Списки списков....154

Кортежи или списки?....155

Включений кортежей не существует....155

Итоги и взгляд вперед....156

Упражнения....156

Глава 9. Словари и множества....158

Словари....158

Создание словаря с помощью {}....158

Создание словаря с помощью dict()....159

Преобразование с помощью dict()....160

Добавление или изменение элемента по [ключу]....160

Получение элемента словаря с помощью [ключа] или get()....162

Итерации по словарям с помощью for и in....163

Получение длины словаря с помощью len()....164

Объединениеобновление словарей....164

Удаление элементов по ключу с помощью del....166

Получение элемента по ключу и его удаление с помощью pop()....166

Удаление всех элементов с помощью clear()....167

Проверка наличия ключа с помощью in....167

Присваивание значения с помощью оператора ....167

Копирование с помощью copy()....168

Копирование содержимого словаря с помощью deepcopy()....168

Сравнение словарей....169

Включения словарей....170

Множества....171

Создание множества с помощью set()....171

Получение длины с помощью len()....172

Добавление элемента с помощью add()....173

Удаление элемента с помощью remove()....173

Объединение с помощью ....173

Итерации с помощью for и in....173

Проверка наличия значения с помощью in....174

Комбинации и операторы....174

Включение множества....178

Создание неизменяемого множества с помощью frozenset()....178

Итоги и взгляд вперед....179

Упражнения....179

Глава 10. Функции....181

Определение функции с помощью def....181

Вызов функции с помощью скобок....182

Аргументы и параметры....183

None, истинность и ложность....184

Позиционные аргументы....186

Именованные аргументы....187

Значения по умолчанию для параметров....187

Упаковкараспаковка позиционных аргументов с помощью ....188

Упаковкараспаковка именованных аргументов с помощью ....190

Передача аргументов только по именам () и только по позициям ()....191

Изменяемые и неизменяемые аргументы....193

Строки документации....194

Функции это объекты первого класса....194

Набор аргументов функции не является кортежем....197

Вложенные функции....197

Замыкания....198

Анонимные функции: лямбда-выражения....199

Генераторы....200

Функции-генераторы....200

Включения генераторов....202

Декораторы....202

Пространства имен и область видимости....205

Использование символов _ и __ в именах....207

Рекурсия....207

Асинхронные функции, кратко....209

Исключения....209

Обработка ошибок с помощью операторов try и except....210

Блок finally....211

Создание собственных исключений....212

Итоги и взгляд вперед....213

Упражнения....213

Глава 11. Объекты....214

Что такое объекты....214

Простые объекты....215

Определение класса с помощью class....215

Атрибуты....216

Методы....217

Инициализация....217

Наследование....218

Наследование от родительского класса....219

Переопределение методов....220

Добавление метода....221

Получение помощи от родителя с использованием метода super()....222

Множественное наследование....223

Примеси....225

В защиту self....225

Доступ к атрибутам....226

Прямой доступ....226

Геттеры и сеттеры....227

Свойства для доступа к атрибутам....227

Свойства для вычисляемых значений....229

Искажение имен для безопасности....230

Атрибуты классов и объектов....231

Типы методов....232

Методы экземпляров....232

Методы классов....232

Статические методы....233

Утиная типизация....233

Магические методы....235

Агрегирование и композиция....238

Когда использовать объекты, а когда что-то другое....239

Именованные кортежи....240

Классы данных....242

Attrs....243

Итоги и взгляд вперед....243

Упражнения....244

Глава 12. Модули и пакеты....245

Модули и оператор import....245

Импортирование модуля....245

Импортирование модуля с другим именем....247

Импортирование только самого необходимого....248

Пакеты....248

Путь поиска модуля....250

Относительный и абсолютный импорт....251

Пакеты пространств имен....251

Модули против объектов....252

Достоинства стандартной библиотеки Python....253

Обработка отсутствующих ключей с помощью функций setdefault() и defaultdict()....254

Подсчет элементов с помощью Counter()....256

Упорядочивание по ключу с помощью OrderedDict()....257

Стек очередь deque....258

Итерации по структурам кода с помощью itertools....259

Случайные значения....260

Еще больше батареек: получение сторонних модулей....261

Итоги и взгляд вперед....262

Упражнения....262

Часть II. Инструменты....263

Глава 13. Среда разработки....264

Ищем код на Python....264

Установка пакетов....265

С помощью pip....265

С помощью менеджера пакетов....266

Установка из исходного кода....267

Виртуальные среды....267

virtualenv и venv....268

Pipenv....269

Poetry....269

Conda....269

uv....269

Интегрированные среды разработки....270

IPython....271

Jupyter Notebook....273

JupyterLab....273

Управление исходным кодом....273

Git....274

Итоги и взгляд вперед....277

Упражнения....277

Глава 14. Аннотации типов и документация....278

Аннотации типов....278

Аннотирование переменных....279

Аннотирование функций....280

Mypy....280

Документация....281

Комментарии....282

Строки документации....282

Текстовые файлы разметки....282

Итоги и взгляд вперед....283

Упражнения....283

Глава 15. Тестирование....284

Pylint....284

Ruff....286

Unittest....287

Doctest....291

Pytest....292

Примеры....293

Фикстуры....294

Параметризация....296

Hypothesis....297

Nox....298

Непрерывная интеграция....298

Итоги и взгляд вперед....299

Упражнения....299

Глава 16. Отладка....300

Утверждения....301

Простой вывод....302

F-строки....302

Функция pprint()....302

Пакет IceCream....303

Декораторы....304

Журналирование....305

Отладчик pdb....308

Функция breakpoint()....314

Итоги и взгляд вперед....314

Упражнения....314

Часть III. Приключения....315

Глава 17. Текстовые данные....316

Текстовые строки: Юникод....316

Строки Юникода в Python....317

UTF-8....320

Кодирование....321

Декодирование....323

Сущности HTML....324

Нормализация....325

Текстовые строки: регулярные выражения....327

Поиск точного начального совпадения с помощью функции match()....328

Поиск первого совпадения с помощью search()....329

Поиск всех совпадений с помощью функции findall()....329

Разбиение строки по совпадениям с помощью функции split()....330

Замена совпадений с помощью функции sub()....330

Шаблоны....330

Специальные символы....330

Спецификаторы....332

Вывод совпадений....335

Итоги и взгляд вперед....335

Упражнения....336

Глава 18. Двоичные данные....337

Преобразование двоичных данных с помощью struct....337

Другие инструменты для работы с двоичными данными....340

Преобразование байтовстрок с помощью binascii()....341

Битовые операторы....341

Итоги и взгляд вперед....342

Упражнения....342

Глава 19. Даты и время....343

Високосный год....344

Модуль datetime....344

Модуль time....347

Чтение и запись даты и времени....350

Все преобразования....354

Альтернативные модули....354

Итоги и взгляд вперед....355

Упражнения....355

Глава 20. Файлы....356

Ввод информации в файлы и ее вывод из них....356

Создание или открытие файлов с помощью open()....356

Запись в текстовый файл с помощью print()....357

Запись в текстовый файл с помощью write()....358

Чтение данных из текстового файла с помощью read(), readline() и readlines()....359

Запись данных в двоичный файл с помощью write()....361

Чтение двоичных файлов с помощью read()....362

Автоматическое закрытие файла с помощью with....362

Изменение позиции с помощью seek()....362

Отображение в память....364

Операции с файлами....365

Проверка существования файла с помощью exists()....365

Проверка типа с помощью isfile()....365

Копирование файлов с помощью copy()....366

Изменение имен файлов с помощью rename()....366

Создание ссылок с помощью link() или symlink()....366

Изменение разрешений с помощью chmod()....367

Изменение владельца файла с помощью chown()....367

Удаление файла с помощью remove()....367

Каталоги....368

Создание каталога с помощью mkdir()....368

Удаление каталога с помощью rmdir()....368

Вывод на экран содержимого каталога с помощью listdir()....368

Изменение текущего каталога с помощью chdir()....369

Перечисление файлов, соответствующих шаблону, с помощью glob()....369

Пути к файлам....370

Получение путей к файлам с помощью abspath()....371

Получение символической ссылки с помощью realpath()....371

Конструирование путей к файлам с помощью os.path.join()....371

Использование модуля pathlib....372

BytesIO и StringIO....372

Форматы файлов: определение....374

Итоги и взгляд вперед....375

Упражнения....375

Глава 21. Данные во времени: конкурентность....376

Программы и процессы....376

Создание процесса с помощью модуля subprocess....377

Создание процесса с помощью модуля multiprocessing....378

Остановка процесса с помощью функции terminate()....379

Получение системной информации с помощью модуля os....380

Получение информации о процессах с помощью модуля psutil....380

Автоматизация команд....381

Invoke....381

Другие вспомогательные методы для команд....382

Конкурентность....383

Очереди....384

Процессы....385

Потоки выполнения....386

GIL....388

concurrent.futures....389

Зеленые потоки и gevent....392

Twisted....395

asyncio....396

Сопрограммы и циклы событий....397

Альтернативы asyncio....399

Async против....400

Асинхронные фреймворки и серверы....401

Redis....402

Помимо очередей....405

Итоги и взгляд вперед....406

Упражнения....406

Глава 22. Данные в пространстве: сети....407

TCPIP....407

Сокеты....409

Scapy....413

Netcat....414

Паттерны для работы с сетями....414

Паттерн запрос ответ....415

Запрос-ответ: ZeroMQ....415

Запрос ответ: другие инструменты обмена сообщениями....419

Паттерн издатель подписчик....419

Издатель подписчик: Redis....420

Издатель подписчик: ZeroMQ....421

Издатель подписчик: другие инструменты....423

Интернет-сервисы....423

Система доменных имен....424

Модули Python для работы с электронной почтой....425

Другие протоколы....425

Веб-сервисы и API....425

Сериализация данных....426

Сериализация с помощью pickle....426

Другие форматы сериализации....427

Вызовы удаленных процедур....428

XML RPC....429

JSON RPC....430

MessagePack RPC....431

Zerorpc....432

gRPC....432

Инструменты удаленного управления....433

Работа с большими объемами данных....434

Hadoop....434

Spark....435

Disco....435

Dask....435

Облака....435

Amazon Web Services....437

Google Cloud....437

Microsoft Azure....437

OpenStack....437

Docker....438

Kubernetes....438

Итоги и взгляд вперед....438

Упражнения....438

Глава 23. Данные в коробке: надежные хранилища....440

Текстовые файлы....440

Структурированные текстовые файлы....441

CSV....441

XML....444

Примечание о безопасности XML....446

HTML....446

JSON....447

YAML....450

TOML....451

Tablib....451

Конфигурационные файлы....451

Двоичные файлы....452

Двоичные файлы с дополнением и отображение в память....452

Электронные таблицы....453

HDF5....453

TileDB....453

Реляционные базы данных....454

SQL....455

DB-API....456

SQLite....457

DuckDB....459

MySQL....459

PostgreSQL....460

SQLAlchemy....460

Другие пакеты для работы с базами данных....466

Хранилища данных NoSQL....466

Семейство dbm....467

Memcached....468

Redis....468

Valkey альтернатива Redis?....476

Документоориентированные базы данных....476

Базы данных временных рядов....477

Графовые базы данных....478

Другие серверы NoSQL....478

Полнотекстовые базы данных....478

Векторные базы данных....479

Геопространственные базы данных....479

Итоги и взгляд вперед....479

Упражнения....480

Глава 24. Всемирная паутина....481

Основы Всемирной паутины....482

Тестируем HTTP....483

Telnet....483

curl....484

HTTPie....485

httpbin....486

Веб-клиенты....486

Стандартная библиотека....486

Requests....488

Другие веб-клиенты....490

Веб-серверы....492

Простейший веб-сервер на Python....492

Web Server Gateway Interface....494

ASGI....495

Apache....495

NGINX....497

Другие веб-серверы на Python....497

Фреймворки для работы веб-серверами....497

Bottle....498

Flask....501

Django....505

FastAPI....505

Litestar....506

Фреймворки для работы с базами данных....506

Веб-сервисы и автоматизация....507

webbrowser....507

webview....508

REST API....508

Веб-сокеты....509

Веб-обработчики....511

Веб-интерфейсы....511

htmx....511

FastHTML....512

Поиск и выборка данных....513

Scrapy....513

Beautiful Soup....513

Requests-HTML....514

Давайте посмотрим фильм....515

Итоги и взгляд вперед....518

Упражнения....518

Глава 25. Наука о данных....519

Стандартный Python....519

Преобразование форматов....521

math....521

Комплексные числа....523

Вычисление точных значений с плавающей точкой с помощью decimal....524

Рациональные арифметические действия с дробями....525

Использование упакованных последовательностей с помощью array....525

Statistics....526

Умножение матриц....526

NumPy....526

Создание массива с помощью array()....527

Создание массива с помощью arange()....527

Создание массива с помощью zeros(), ones() или random()....528

Изменение формы массива с помощью reshape()....529

Получение элемента с помощью []....530

Математика массивов....531

Линейная алгебра....532

SciPy....533

pandas....533

Polars....535

DuckDB....536

Визуализация данных....536

Итоги и взгляд вперед....537

Упражнения....537

Глава 26. Искусственный интеллект....538

Как оказывается.......539

Экспертные системы....539

Перцептроны....539

Прорыв....540

Распознавание изображений: ImageNet и AlexNet....540

Большие языковые модели....541

Момент ChatGPT....541

Генерация, дополненная результатами поиска....541

Агенты....541

Эффективность....542

Создание моделей: фреймворки Python....542

Современные модели....543

Миллион моделей: Hugging Face....544

Рабочие примеры с использованием Ollama....544

Установка Ollama....545

Выбор модели....545

Выбор другой модели....547

Ссылки Ollama....549

Ссылки....550

Итоги и взгляд вперед....550

Упражнения....551

Глава 27. Производительность....552

Аппаратное обеспечение....552

Измерение времени....554

Профилирование....558

Алгоритмы и структуры данных....559

Массивы, списки и кортежи....560

Кэш....560

Cython....561

NumPy и SciPy....561

Расширения на C или Rust....561

Taichi....562

PyPy....562

Numba....562

Стандартный JIT-компилятор Python....563

Mojo....564

Предыстория....564

Архитектура....565

Примеры....566

Ограничения....566

Заключение....566

Итоги и взгляд вперед....567

Упражнения....567

Приложение. Ответы к упражнениям....568

Глава 2. Типы данных и переменные....568

Глава 3. Числа....569

Глава 4. Cтроки....570

Глава 5. Строки и массивы байтов....573

Глава 6. Операторы if и match....574

Глава 7. Операторы while и for....575

Глава 8. Кортежи и списки....576

Глава 9. Словари и множества....581

Глава 10. Функции....584

Глава 11. Объекты....586

Глава 12. Модули и пакеты....590

Глава 13. Среда разработки....591

Глава 14. Аннотации типов и документация....592

Глава 15. Тестирование....593

Глава 16. Отладка....594

Глава 17. Текстовые данные....595

Глава 18. Двоичные данные....598

Глава 19. Даты и время....599

Глава 20. Файлы....601

Глава 21. Данные во времени: конкурентность....602

Глава 22. Данные в пространстве: сети....602

Глава 23. Данные в коробке: надежные хранилища....607

Глава 24. Всемирная паутина....611

Глава 25. Наука о данных....613

Глава 26. Искусственный интеллект....613

Глава 27. Производительность....619

Об авторе....621

Иллюстрация на обложке....623

От издательства....33

Благодарности....34

Путешествие в мир программирования часто напоминает блуждание по лабиринту, из которого нет выхода. Неудивительно, что Python стал любимцем миллионов: он не просто понятен, его приятно изучать, читать и писать на нем.

Культовая книга Билла Любановича уже помогла тысячам разработчиков перейти на новый уровень. И вот долгожданное третье издание! Добавлены главы по ИИ, науке о данных и производительности; расширен охват сред разработки; добавлено обсуждение новейших возможностей Python; сделан акцент на использовании аннотаций типов; обновлено множество примеров и добавлено немало интересных подробностей; старая глава 19 («Быть питонщиком») превратилась в полноценную часть II.


Живой, остроумный стиль автора превращает чтение в удовольствие. А главное — вы не застрянете в теории. Подробные, практические проекты проведут вас по самым востребованным направлениям: веб-разработка, работа с базами данных, искусственный интеллект, сетевое программирование и не только.


5 причин купить книгу

  1. Новые мощные темы: ИИ, наука о данных и оптимизация производительности.
  2. Акцент на современных практиках: аннотации типов, виртуальные среды, тестирование и отладка.
  3. Живой, остроумный язык и тысячи реальных примеров — учиться легко и интересно.
  4. Полный путь “от новичка до профи” + современные инструменты (FastAPI, DuckDB, Ollama, Redis и др.)
  5. Тысячи реальных примеров кода, которые можно сразу копировать и запускать.



Похожее:

Список отзывов:

Нет отзывов к книге.