Климович А. Д. - Правильный способ изучить PYTHON с примерами и задачами (Программирование от А до C++) [2026, PDF, RUS]

Страницы:  1
Ответить
 

tsurijin

Стаж: 5 лет 8 месяцев

Сообщений: 3242


tsurijin · 19-Июл-26 12:14 (2 дня 12 часов назад, ред. 19-Июл-26 13:20)

Правильный способ изучить PYTHON с примерами и задачами
Год издания: 2026
Автор: Климович А. Д.
Издательство: АСТ
ISBN: 978-5-17-178635-9
Серия: Программирование от А до C++
Язык: Русский
Формат: PDF
Качество: Отсканированные страницы
Количество страниц: 450
Описание: Перед вами практическое руководство по программированию на одном из самых востребованных сегодня языков - Python, которое формирует не просто знание синтаксиса, а системное мышление разработчика, способного решать сложные задачи в любой области.
Книга строится на принципе глубокого понимания вместо механического запоминания. Каждая концепция раскрывается через трехмерную модель: что представляет собой конструкция, почему она работает именно так и когда ее следует применять. От первых команд и типов данных до объектно-ориентированного программирования и работы с современными технологиями - читатель проходит путь от обычного пользователя компьютера до создателя реальных программных воплощений.
Особое внимание уделено культуре качественного кода: правильные практики именования. структурирования, документирования и тестирования интегрированы в каждый раздел с самого начала. Книга развивает алгоритмическое мышление - умение декомпозировать сложные проблемы, создавать абстракции и находить элегантные решения.
Автор рассматривает Python не как самоцель, а как инструмент формирования вычислительного мышления, которое применимо далеко за пределами сферы программирования. В книге также затрагиваются этические аспекты разработки и ответственность программиста в создании инклюзивного и безопасного программного продукта.
Данное издание предназначено для всех, кто хочет освоить программирование на качественном уровне - от абсолютных новичков до тех, кто стремится систематизировать свои знания и развить профессиональное мышление разработчика.
Примеры страниц (скриншоты)
Оглавление
Предисловие ........................................................................................................................................ 13
Добро пожаловать в мир программирования .................................................................................. 13
Философия изучения программирования ................................................................................................. 13
Проrра11ширование как способ мышления ....................................................................................... 13
Понимание вместо запоминания .......................................................................................................... 13
Культура качественного кода .................................................................................................................. 14
Почему Python - идеальный первый язык .............................................................................................. 14
Философия простоты и читаемости ..................................................................................................... 14
Мультипарадигмальность как преимущество ................................................................................. 15
Обширная экосистема и практическое применение ........................................................................ 15
Плавная кривая обучения ........................................................................................................................ 15
Как правильно использовать книгу ............................................................................................................ 16
Структура изложения материала .......................................................................................................... 16
Рекомендации по изучению .................................................................................................................... 16
Работа с ошибками как инструмент обучения ................................................................................ 17
Использование дополнительных ресурсов ....................................................................................... 17
Настройка среды разработки .......................................................................................................................... 18
Выбор интерпретатора Python ................................................................................................................ 18
Установка Python в различных операционных системах ................................................................... 18
Выбор среды разработки ........................................................................................................................... 18
Настройка системы управления пакетами ....................................................................................... 19
Создание виртуального окружения ...................................................................................................... 19
Проверка установки .................................................................................................................................... 20
Глава 1. Первые шаги в мире программирования ................................................................................ 21
1.1. Что такое программирование и зачем оно нужно .......................................................................... 21
1.2. Python - философия простоты и элегантности ............................................................................... 21
1.3. Интерпретатор как ваш первый собеседник .................................................................................... 22
1.4. Анатомия ошибок: учимся понимать компьютер .......................................................................... 23
1.5. Первая программа: традиция "Hello, World! "по-русски ........................................................... 25
1.6. Интерактивный режим vs написание скриптов ............................................................................. 27
1.7. Практические упражнения и размышления .................................................................................... 29
Упражнение 1. Персонализированное приветствие ....................................................................... 29
Упражнение 2. Простой калькулятор с проверкой ......................................................................... 29
Упражнение 3. Анализатор числовых последовательностей ............................................................ 30
Упражнение 4. Генератор простых паролей ..................................................................................... 31
Заключительные размышления о первой главе ............................................................................. 32
Глава 2. Язык данных и выражений ............................................................................................... 33
2.1. типы данных: строительные блоки программ: ................................................................................ 33
2.2. Переменные как именованные контейнеры .................................................................................... 34
2.3. Числа: целые, вещественные и их особенности .............................................................................. 35
Целые числа (int) ........................................................................................................................................ 35
Вещественные числа (float) ................................................................................................................. 36
Преобразование между типами чисел ................................................................................................ 36
Математические операции с числами ................................................................................................ 37
2.4. Строки: работа с текстом в Python ......................................................................................................... 37
Создание и базовые операции со строками ....................................................................................... 38
Индексация и срезы строк ........................................................................................................................ 38
Методы строк для обработки текста ..................................................................................................... 39
Проверочные методы строк ..................................................................................................................... 39
Форматирование строк .............................................................................................................................. 40
2.5. Булевы значения: логика истины и лжи ............................................................................................ 40
Основы булевых значений ....................................................................................................................... 40
Истинность различных типов данных ............................................................................................... 41
Логические операторы ............................................................................................................................... 41
Операторы сравнения ................................................................................................................................ 42
Особенности работы с булевыми значениями ................................................................................. 42
2.6. Операторы и приоритет операций ....................................................................................................... 43
Арифметические операторы ................................................................................................................... 43
Операторы сравнения и их цепочки .................................................................................................... 43
Логические операторы и короткое замыкание ................................................................................ 44
Операторы присваивания ........................................................................................................................ 44
2.7. Ввод данных от пользователя ................................................................................................................. 45
Базовое использование функции input() ....................................................................................... 46
Преобразование типов при вводе ......................................................................................................... 46
Создание надежного ввода с проверкой ............................................................................................. 46
Ввод сложных данных ............................................................................................................................... 47
2.8. Форматирование вывода: красота в деталях. ................................................................................... .48
f-строки: современный стандарт форматирования ....................................................................... 48
Спецификаторы формата для чисел ..................................................................................................... 48
Выравнивание и заполнение .................................................................................................................. 49
Форматирование дат и времени ............................................................................................................ 49
Создание структурированного вывода ............................................................................................... 50
Многострочное форматирование .......................................................................................................... 50
2.9. Упражнения для закрепления ................................................................................................................ 51
Упражнение 1. Калькулятор типов данных ...................................................................................... 51
Упражнение 2. Конвертер единиц измерения ................................................................................. 52
Упражнение 3. Анализатор текста ........................................................................................................ 53
Упражнение 4. Система оценки знаний ............................................................................................. 54
Упражнение 5. Личный финансовый помощник ........................................................................... 55
Рекомендации по выполнению упражнений .................................................................................. 57
Заключение .................................................................................................................................................... 57
Глава 3. Искусство принятия решений ........................................................................................... 58
3.1. Условные конструкции: развилки в программе .............................................................................. 58
3.2. Логические операторы: И, ИЛИ, НЕ ....................................................................................................... 60
3.3. Сложные условия и их упрощение ....................................................................................................... 61
Техника 1. Использование промежуточных переменных ............................................................. 61
Техника 2. Использование вложенных условий для упрощения логики ........................................ 62
Техника 3. Принцип раннего возврата ................................................................................................ 62
3.4. Вложенные условия: решения внутри решений ............................................................................. 63
Техника упрощения: инверсия условий ............................................................................................. 64
Комбинирование вложенных условий с логическими операторами .............................................. 65
3.5. Сопоставление с образцом (match-case) .......................................................................................... 65
Сопоставление с несколькими значениями ..................................................................................... 66
Сопоставление с защитными условиями (guard clauses) ............................................................. 66
Практический пример: калькулятор с match-case ...................................................................... 67
Сопоставление со структурированными данными ....................................................................... 68
3.6. Практические примеры: калькулятор, игра в угадайку ............................................................... 68
Проект 1. Интеллектуальный калькулятор ....................................................................................... 69
Проект 2. Игра «Угадай число» с адаптивным интеллектом ......................................................... 71
3.7. Задачи для самостоятельного решения .............................................................................................. 14
Глава 4. Циклы - автоматизация повторений .............................................................................. 77
4.1. Философия циклов: зачем повторять код ........................................................................................... 77
4.2. Цикл fог: известное количество итераций ...................................................................................... 77
4.3. Цикл while: до тех пор, пока ................................................................................................................... 79
4.4. Управление циклами: Ьгеаk и continue ......................................................................................... 81
Команда Ьгеаk: досрочный выход ....................................................................................................... 81
Команда continue: пропуск итерации .............................................................................................. 83
Практический пример: валидация данных ...................................................................................... 83
4.5. Вложенные циклы: циклы внутри циклов ........................................................................................ 84
Принцип работы вложенных циклов .................................................................................................. 85
Работа с двумерными структурами ...................................................................................................... 85
Генерация комбинаций ............................................................................................................................. 86
Управление выполнением вложенных циклов .............................................................................. 86
Оптимизация вложенных циклов ........................................................................................................ 87
4.6. Генераторы списков: элегантность Python ......................................................................................... 88
Генераторы с условиями ........................................................................................................................... 88
Сложные выражения в генераторах .................................................................................................... 89
Вложенные генераторы списков ........................................................................................................... 89
Условные выражения в генераторах .................................................................................................... 89
Производительность и читаемость ...................................................................................................... 90
Ограничения и рекомендации ............................................................................................................... 91
4. 7. Практические алгоритмы: поиск, сортировка ................................................................................. 91
Поиск элемента в списке ........................................................................................................................... 91
Поиск максимального/минимального значения ............................................................................ 92
Алгоритмы сортировки: пузырьковая сортировка ........................................................................ 92
Поиск подстроки в строке ......................................................................................................................... 93
4.8. Большая практическая работа: анализ текста ................................................................................. 93
Постановка задачи ....................................................................................................................................... 93
Пример реализации .................................................................................................................................... 93
Объяснение и расширение задачи ........................................................................................................ 95
Глава 5. Функции - строительные блоки программ ................................................................................. 96
5.1. Зачем нужны функции: принцип DRY ................................................................................................ 96
Проблема дублирования кода ................................................................................................................. 96
Принцип DRY: Don't Repeat Yourself ...................................................................................................... 97
Функции как решение проблемы повторения ................................................................................. 97
Преимущества использования функций ........................................................................................... 98
Функции в реальном мире программирования .............................................................................. 98
5.2. Создание собственных функций ............................................................................................................ 98
Синтаксис определения функции ......................................................................................................... 98
Простейшие примеры функций ............................................................................................................. 99
Функции с возвращаемым значением ................................................................................................ 100
Функции с несколькими параметрами ............................................................................................... 100
Практический пример: функция для проверки четности ..................................................................... 100
Соглашения об именовании функций ................................................................................................. 101
Документирование функций .................................................................................................................. 101
5.3. Параметры и аргументы: передача данных ...................................................................................... 102
Параметры vs Аргументы: важное различие .................................................................................... 102
Позиционные аргументы ......................................................................................................................... 102
И1.1енованные аргументы ......................................................................................................................... 103
Смешивание позиционных и именованных аргументов ........................................................................ 103
Практический пример: функция расчета стоимости доставки .............................................................. 104
5.4. Возвращение значений: результат работы функции .................................................................... 104
Оператор return ......................................................................................................................................... 104
Возврат различных типов данных ........................................................................................................ 105
Возврат нескольких значений ................................................................................................................ 105
Условный возврат значений ................................................................................................................... 106
Досрочный возврат ..................................................................................................................................... 106
Практический пример: функция знали.за текста ........................................................................... 107
5.5. Область видимости переменных ........................................................................................................... 108
Локальные переменные ............................................................................................................................ 108
Глобальные переменные .......................................................................................................................... 109
Конфликт имен: локальные переменные скрывают глобальные ...................................................... 109
Ключевое слово global ............................................................................................................................ 109
Параметры функции - это локальные переменные .................................................................... 110
Практический пример: управление банковским счетом ............................................................ 110
Рекомендации по работе с областями видимости .......................................................................... 111
5.6. Значения по умолчанию и именованные параметры .................................................................. 112
Параметры со значениями по умолчанию ........................................................................................ 112
Правила использования значений по умолчанию ........................................................................ 112
Именованные параметры в сочетании со значениями по умолчанию ............................................ 113
Практический пример: функция подключения к базе данных ....................................................... 114
5.7. Функции как объекты первого класса ................................................................................................. 115
Присваивание функций переменным ................................................................................................. 115
Передача функций как аргументов ...................................................................................................... 116
Функции высшего порядка ...................................................................................................................... 116
Хранение функций в структурах данных .......................................................................................... 117
Практический пример: система обработки событий .................................................................... 118
5.8. Рекурсия: функции, вызывающие сами себя .................................................................................... 119
Что такое рекурсия ...................................................................................................................................... 120
Простейший пример: факториал ........................................................................................................... 120
Рекурсивный обход структур данных .................................................................................................. 120
Числа Фибоначчи ......................................................................................................................................... 121
Рекурсивный поиск файлов ..................................................................................................................... 122
Важные принципы работы с рекурсией ............................................................................................. 124
Когда использовать рекурсию ................................................................................................................ 124
5.9. Практический проект: библиотека математических функций ................................................. 124
Структура проекта ....................................................................................................................................... 124
Рекомендации по реализации ................................................................................................................ 125
Рекомендации по дальнейшему развитию ....................................................................................... 126
Глава 6. Структуры даяных Python ................................................................................................. 127
6.1. Списки: упорядоченные коллекции данных .................................................................................... 127
Создание списков ......................................................................................................................................... 127
Индексация и доступ к элементам ........................................................................................................ 128
Изменяемость списков .............................................................................................................................. 128
Особенности работы со ссылками ......................................................................................................... 128
Списки в условных выражениях ........................................................................................................... 129
Вложенные списки ...................................................................................................................................... 129
6.2. Операции со спискам.и: добавление, удаление, поиск .................................................................. 129
Добавление элементов ............................................................................................................................... 130
Удаление элементов .................................................................................................................................... 131
Поиск элементов .......................................................................................................................................... 132
6.3. Срезы: элегантное извлечение подпоследовательностей ............................................................ 133
Базовый синтаксис срезов ........................................................................................................................ 133
Работа с отрицательными индексами ................................................................................................. 133
Использование шага в срезах ................................................................................................................. 134
Срезы для копирования и модификации ........................................................................................... 134
Срезы строк ..................................................................................................................................................... 135
Практические применения срезов ....................................................................................................... 135
6.4. Кортежи: неизменяемые последовательности ................................................................................ 137
Создание кортежей ...................................................................................................................................... 137
Неизменяемость кортежей ...................................................................................................................... 137
Доступ к элементам кортежей ................................................................................................................ 138
Операции с кортежами .............................................................................................................................. 138
Распаковка кортежей ................................................................................................................................. 138
Когда использовать кортежи .................................................................................................................. 139
Сравнение производительности: список vs кортеж ................................................................................... 140
Именованные кортежи .............................................................................................................................. 141
6.5. Словари: ключ-значение в действии .................................................................................................... 141
Создание словарей ....................................................................................................................................... 142
Доступ к значениям .................................................................................................................................... 142
Изменение словарей ................................................................................................................................... 143
Методы работы со словарями ................................................................................................................. 144
Вложенные словари .................................................................................................................................... 144
6.6. Множества: уникальность и математические операции ............................................................ 145
Создание множеств ..................................................................................................................................... 146
Операции с элементами множества .................................................................................................... 146
Математические операции с множествами ...................................................................................... 147
Практические применения множеств ................................................................................................ 147
Множества и производительность ....................................................................................................... 148
Неизменяемые множества (frozenset) ............................................................................................ 149
Практические рекомендации по использованию множеств ............................................................... 149
6.7. Выбор правильной структуры данных. ............................................................................................... 150
Критерии выбора структуры данных .................................................................................................. 150
Практические сценарии выбора ............................................................................................................ 151
Практические рекомендации ................................................................................................................. 153
6.8. Вложенные структуры: списки словарей и словари списков ..................................................... 154
Списки словарей: коллекции записей ................................................................................................. 154
Словари списков: группировка данных .............................................................................................. 155
Рекомендации по дизайну вложенных структур ............................................................................ 157
6.9. Практический проект: система учета студентов ............................................................................. 159
Архитектура системы и выбор структур данных ............................................................................ 159
Управление студентам-и ............................................................................................................................ 160
Управление курсами и регистрацией ................................................................................................. 161
Система оценок и академическая успеваемость ............................................................................. 163
Расписание и управление временем .................................................... ,.. ............................................ 164
Аналитика и отчеты ................................................................................................................................... 166
Демонстрация системы в действии ...................................................................................................... 168
Анализ архитектурных решений .......................................................................................................... 170
Расширения и улучшения ........................................................................................................................ 170
Глава 7. Работа с файлами и данными ........................................................................................... 172
7.1. Файловая система глазами программиста ......................................................................................... 172
Концепция файловой системы ............................................................................................................... 172
Пути к файлам: абсолютные и относительные ................................................................................ 172
Работа с путями в Python ........................................................................................................................... 173
Операции с файловой системой ............................................................................................................ 173
7.2. Чтение и запись текстовых файлов ...................................................................................................... 174
Основы работы с файлами: функция ореп() ................................................................................... 174
Режимы открытия файлов ....................................................................................................................... 174
Конструкция with: безопасная работа с файлами ......................................................................... 175
Способы чтения файлов ............................................................................................................................ 175
Запись в файлы ............................................................................................................................................. 175
Обработка кодировок ................................................................................................................................. 176
Практический пример: анализатор текста ........................................................................................ 176
7.3. Обработка СSV-данных ............................................................................................................................... 177
Что представляет собой формат CSV .................................................................................................... 178
Модуль csv: стандартные инструменты Python ............................................................................... 178
Чтение СSV-файлов ...................................................................................................................................... 178
Запись СSV-файлов ...................................................................................................................................... 179
Обработка различных форматов CSV ................................................................................................... 179
7.4. Работа с JSON: современный формат данных .................................................................................... 180
Что такое JSON и почему он важен ....................................................................................................... 180
Модуль json: встроенные возможности Python ................................................................................ 181
Соответствие типов данных .................................................................................................................... 181
Работа с JSОN-файлами .............................................................................................................................. 182
Обработка ошибок при работе с JSON .................................................................................................. 183
7.5. Обработка исключений: что делать, когда что-то идет не так ................................................... 184
Философия обработки ошибок в Python .............................................................................................. 184
Базовая структура tгу-ехсерt ............................................................................................................. 185
Иерархия исключений в Python ............................................................................................................. 185
Обработка множественных исключений ........................................................................................... 186
7.6. Практический проект: анализатор логов веб-сервера .................................................................. 187
Понимание задачи ...................................................................................................................................... 188
Архитектура решения ................................................................................................................................ 188
Парсинr строк лоrа ...................................................................................................................................... 189
Анализ данных .............................................................................................................................................. 189
Генерация отчетов ....................................................................................................................................... 191
Главная функция и использование ...................................................................................................... 193
Файл конфигурации .................................................................................................................................... 193
Тестирование и расширение ................................................................................................................... 194
Глава 8. Модули и пакеты ................................................................................................................. 195
8.1. Организация кода: от скрипта к модулю ............................................................................................ 195
Эволюция ОТ МОНОЛИТНОГО скрипта ..................................................................................................... 195
Принципы модульности ........................................................................................................................... 197
Преимущества модульной организации ............................................................................................ 198
8.2. Импopт модулей: различные способы ................................................................................................. 198
Основы импорта: оператор import ...................................................................................................... 198
Селективный тmорт: fгот . .. import .............................................................................................. 199
Переименование при импорте: оператор аs .................................................................................... 200
Импорт всего содержимого: from module import * ................................................................ 200
Абсолютные и относительные импорты ............................................................................................ 201
Условный импорт и обработка ошибок .............................................................................................. 202
Отложенный импорт .................................................................................................................................. 202
Практический пример: система логирования ................................................................................. 202
Лучшие практики импорта ...................................................................................................................... 204
8.3. Стандартная библиотека Python: обзор возможностей ................................................................. 205
Модуль os: взаимодействие с операционной системой .............................................................. 205
Модуль sys: информация о системе и интерпретаторе ............................................................... 206
Модуль datetime: работа с датой и временем ................................................................................ 207
Модули math и random: математические вычисления ................................................................ 208
Модуль json: работа с данными JSON ................................................................................................. 209
Интеграция модулей: комплексный пример .................................................................................... 210
8.4. Создание собственных пакетов .............................................................................................................. 211
Анатомия пакета: структура и принципы ......................................................................................... 211
Создание базового пакета ......................................................................................................................... 212
Создание вложенных пакетов ................................................................................................................ 213
Использование созданного пакета ....................................................................................................... 215
Относительные импорты внутри пакета ........................................................................................... 215
8.5. Менеджер пакетов pip: расширяем возможности ......................................................................... 216
Философия повторного использования кода .................................................................................... 216
Основные операции с pip ........................................................................................................................ 216
Управление зависимостями проекта ................................................................................................... 217
Практический пример: работа с внешними библиотеками .................................................................... 217
Обновление и удаление пакетов ........................................................................................................... 218
Работа с индексами и источниками ..................................................................................................... 219
8.6. Виртуальные окружения: изоляция проектов ................................................................................. 219
Проблема глобального пространства .................................................................................................. 219
venv: стандартный инструмент изоляции ......................................................................................... 219
Альтернативы venv .................................................................................................................................... 220
Лучшие практики работы с виртуальными окружениями .................................................................... 221
Автоматизация работы с окружениями ............................................................................................. 221
8.7. Практическая работа: создание утилитарного пакета .................................................................. 222
Планирование пакета ................................................................................................................................ 222
Создание структуры пакета ..................................................................................................................... 222
Создание модулей пакета ......................................................................................................................... 223
Использование .............................................................................................................................................. 230
Заключение .................................................................................................................................................... 233
Глава 9. Объектно-ориентированное программирование .................................................................. 234
9.1. Философия ООП: моделирование реального мира ......................................................................... 234
Зачем нужно объектно-ориентированное программирование .......................................................... 234
Основные принципы ООП ........................................................................................................................ 235
Моделирование реального мира ........................................................................................................... 235
Преимущества объектно-ориентированного подхода ...................................................................... 236
9.2. классы и объекты: шаблоны и экземпляры ...................................................................................... 236
Анатомия класса в Python ......................................................................................................................... 236
Инициализация объектов: метод __ init __ .................................................................................... 237
Атрибуты экземпляра ................................................................................................................................. 237
Методы класса ............................................................................................................................................... 238
Создание более сложного класса ........................................................................................................... 239
Важные концепции ..................................................................................................................................... 240
9.3. Атрибуты и методы: состояние и поведение ..................................................................................... 241
Методы экземпляра: поведение объекта ............................................................................................ 241
Загадочный self: понимание механизма ........................................................................................ 242
Атрибуты экземпляра vs атрибуты класса ......................................................................................... 242
Изменение атрибутов класса .................................................................................................................. 244
Методы как атрибуты объекта ............................................................................................................... 244
Динамическое добавление атрибутов и методов ............................................................................ 245
9.4. Инкапсуляция: сокрытие внутренней реализации ........................................................................ 245
Проблема прямого доступа к атрибутам ............................................................................................ 245
Приватные атрибуты: соглашения Python ......................................................................................... 246
Геттеры и сеттеры: классический подход .......................................................................................... 248
9.5. Наследование: построение иерархий классов .................................................................................. 249
Базовые и дочерние классы ..................................................................................................................... 250
Функция super(): связь с родительским классом ................................................................................ 251
Построение многоуровневой иерархии .............................................................................................. 252
Множественное наследование ............................................................................................................... 253
Порядок разрешения методов (MRO) .................................................................................................... 255
9.6. Полиморфизм: одинаковый интерфейс, разное поведение .............................................................. 256
Полиморфизм через наследование ....................................................................................................... 256
Duck Тyping: «Если это ходит как утка...» ........................................................................................... 257
Переопределение методов для специфического поведения .................................................................. 259
Практическая польза полиморфизма .................................................................................................. 261
9.7. Специальные методы: магия Python ..................................................................................................... 262
Основы создания и представления объектов ................................................................................... 263
Операторы сравнения и арифметические операции ....................................................................... 263
Контейнерные методы: работа с коллекциями ............................................................................... 266
Продвинутые специальные методы ..................................................................................................... 267
9.8. Декораторы: модификация поведения ................................................................................................ 269
Встроенные декораторы классов ........................................................................................................... 269
Создание пользовательских декораторов .......................................................................................... 272
Декораторы для методов класса ............................................................................................................. 274
Композиция декораторов ......................................................................................................................... 276
9.9. Свойства: контролируемый доступ к атрибутам ............................................................................. 277
Создание свойств с помощью функции property() .............................................................................. 277
Использование декоратора @ргореrty .............................................................................................. 278
Свойства с deleter ..................................................................................................................................... 280
9.10. Упражнения для закрепления пройденного материала ............................................................ 282
Упражнение 1. Моделирование банковского счета ....................................................................... 282
Упражнение 2. Система управления книгами ................................................................................. 283
Упражнение 3. Умный термостат .......................................................................................................... 283
Упражнение 4. Иерархия транспортных средств ............................................................................ 283
Упражнение 5. Умная коллекция .......................................................................................................... 284
Глава 10. Отладка и тестирование ................................................................................................... 285
10.1. Искусство отладки: стратегии поиска ошибок ............................................................................... 285
Философия отладки ..................................................................................................................................... 285
Стратегии поиска ошибок ........................................................................................................................ 285
Чтение и интерпретация трейсбеков .................................................................................................. 287
Типичные ошибки и их интерпретация ............................................................................................ 288
Рrint-отладка: простой и эффективный метод .................................................................................. 288
Условная отладка ......................................................................................................................................... 289
10.2. Отладчик Python: пошаговое выполнение ....................................................................................... 290
Введение в pd Ь .............................................................................................................................................. 290
Основные команды pdb ............................................................................................................................. 291
Условные точки останова ......................................................................................................................... 291
Отладка в IDE ................................................................................................................................................. 292
Создание отладочной конфигурации ..................................................................................................... 292
Инспекция переменных и состояния программы ..................................................................................... 294
Отладка рекурсивных функций ............................................................................................................. 296
Заключение по отладке ............................................................................................................................. 297
10.3. Лоrирование: правильный способ отслеживания работы программы ..................................................... 297
Философия лоrирования ........................................................................................................................... 297
Модуль logging: основы .............................................................................................................................. 297
Уровни логирования .................................................................................................................................. 298
Конфигурация логирования .................................................................................................................... 299
Фильтры и обработчики ............................................................................................................................ 301
10.4. Юнит-тестирование: модуль unittest .................................................................................................. 304
Философия тестирования ......................................................................................................................... 304
Модуль unittest: основы ............................................................................................................................. 304
Структура тестов .......................................................................................................................................... 305
Методы утверждений (Assertions) ......................................................................................................... 308
Пропуск тестов и условное выполнение ............................................................................................ 311
Группировка тестов и тестовые наборы ............................................................................................. 313
10.5. Pytest: современный фреймворктестирования ............................................................................. 316
Основы pytest ............................................................................................................................................. 316
Организация тестов .................................................................................................................................... 317
Фикстуры (Fixtures) ..................................................................................................................................... 318
Параметризация тестов ............................................................................................................................. 320
Комбинированная параметризация .................................................................................................... 321
Маркеры (Markers) и плагины ................................................................................................................ 322
Конфигурация pytest ............................................................................................................................... 323
10.6. Покрытие кода тестами ........................................................................................................................... 324
Установка и использование coverage.ру ........................................................................................... 324
Типы покрытия ............................................................................................................................................. 326
Интерпретация результатов покрытия .............................................................................................. 327
Улучшение покрытия ................................................................................................................................. 329
Настройка и конфигурация покрытия ................................................................................................ 331
Интеграция с pytest ................................................................................................................................. 332
Метрики качества тестирования ........................................................................................................... 332
Лучшие практики покрытия ................................................................................................................... 333
10.7. Документирование кода: docstring и типы ...................................................................................... 334
Строки документации (Docstrings) ........................................................................................................ 334
типизация в Python ..................................................................................................................................... 334
Статический анализ с МуРу ..................................................................................................................... 335
Документирование классов ..................................................................................................................... 336
10.8. Практическая работа: тестирование математической библиотеки ........................................... 337
Планирование математической библиотеки ................................................................................... 337
Разработка через тестирование (TDD) ................................................................................................. 338
Расширенное тестирование с Pytest ................................................................................................. 339
интеграционные тесты и фикстуры .................................................................................................... 341
Тестирование производительности и граничных случаев ................................................................ 341
Глава 11. Работа с внешними данными ......................................................................................... 343
11.1. НТТР-запросы: взаимодействие с веб-сервисами .......................................................................... 343
Установка и первые шаrи ......................................................................................................................... 343
Анатомия НТТР-запроса ............................................................................................................................ 343
Работа с различными НТТР-методами ................................................................................................. 344
Обработка ответов сервера ...................................................................................................................... 344
Обработка ошибок и исключений ........................................................................................................ 345
Работа с заголовками и аутентификацией ........................................................................................ 346
Сессии и постоянные соединения ......................................................................................................... 346
Практический пример: мониторинг веб-сайта ................................................................................ 34 7
11.2. Парсинг НТМL: библиотека BeautifulSoup ........................................................................................ 348
Установка и первое знакомство ............................................................................................................. 349
Навигация по DОМ-дереву ........................................................................................................................ 349
СSS-селекторы: мощный инструмент поиска ................................................................................... 350
Извлечение данных и атрибутов ........................................................................................................... 352
Обработка текста и очистка данных .................................................................................................... 353
Практический пример: парсинг новостного сайта ........................................................................ 354
Работа с формами и интерактивными элементами ...................................................................... 358
Лучшие практики парсинга .................................................................................................................... 360
11.3. Работа с АР!: получение данных из интернета .............................................................................. 363
REST API и основные принцыпы ............................................................................................................ 363
Работа с JSОN-данными .............................................................................................................................. 364
Аутентификация и АРI-ключи: ................................................................................................................ 365
Пагинация: работа с большими наборами данных ....................................................................... 366
Rate Limiting: ограничения скорости запросов ................................................................................ 367
Обработка ошибок API ............................................................................................................................... 368
11.4. Базы данных: SQLite в Python ................................................................................................................ 369
Введение в SQLite и модуль sqlite3 ........................................................................................................ 369
СRUD-операции: основа работы с данными ...................................................................................... 370
Основы ОRМ: упрощение работы с базами данных ....................................................................... 376
11.5. Регулярные выражения: мощный инструмент работы с текстом ............................................. 378
Модуль re: основы работы с регулярными выражениями ............................................................... 379
Метасимволы: язык шаблонов ............................................................................................................... 379
Группы: извлечение и структурирование данных ......................................................................... 380
Практические примеры: решение реальных задач ....................................................................... 381
Глава 12. Алгоритмы и структуры данных .................................................................................... 384
12.1. Сложность алгоритмов: большое О .................................................................................................... 384
Временная сложность: как растет время выполнения ................................................................... 384
Нотация большого О ................................................................................................................................... 385
Пространственная сложность ................................................................................................................. 386
Анализ реальных задач ............................................................................................................................. 388
Амортизированная сложность ............................................................................................................... 389
Практические рекомендации ................................................................................................................. 390
12.2. Алгоритмы поиска: линейный и бинарный ................................................................................... 391
Линейный поиск: простота и универсальность .............................................................................. 391
Бинарный поиск: эффективность через упорядоченность .............................................................. 392
Визуализация процесса поиска .............................................................................................................. 393
Сравнительный анализ производительности ................................................................................. 394
Практическое применение и вариации ............................................................................................. 395
Выбор алгоритма поиска .......................................................................................................................... 397
12.3. Алгоритмы сортировки: от пузырька до быстрой ........................................................................ 397
Сортировка пузырьком (ВuЬЬ\е Sort) .................................................................................................... 397
Сортировка выбором (Selection Sort) ..................................................................................................... 399
Сортировка вставками (Insertion Sort) ................................................................................................. 399
Сортировка слиянием (Merge Sort) ........................................................................................................ 400
Быстрая сортировка (Quick Sort) ............................................................................................................. 402
Сравнение алгоритмов сортировки ..................................................................................................... 403
12.4. Стеки и очереди: LIFO и FIF0 ................................................................................................................ .404
Стеки: последний пришел - первый ушел ...................................................................................... 404
Очереди: первый пришел - первый ушел ....................................................................................... 406
Эффективная реализация с помощью deque ..................................................................................... 406
Практическое применение: симудятор обслуживания клиентов ........................................................ 408
Специализированные реализации в Python ..................................................................................... 410
12.5. Деревья: иерархические данные ......................................................................................................... 411
Бинарные деревья: основа древовидных структур ........................................................................ 411
Алгоритмы обхода деревьев .................................................................................................................... 412
Бинарные деревья поиска: эффективная организация данных ..................................................... .414
Практическое применение и анализ производительности ............................................................... 417
Глава 13. Специализированные области ....................................................................................... 418
13.1. Веб-разработка: Flask как введение .................................................................................................... 418
Установка Flask и первое приложение ................................................................................................ 418
Маршруты: навигация в веб-приложении ........................................................................................ 419
Шаблоны: разделение логики и представления ............................................................................. 420
Работа с формами ......................................................................................................................................... 422
REST API: создание веб-сервисов ............................................................................................................ 425
13.2. Анализ данных: pandas и nurnpy .......................................................................................................... 428
Установка и первое знакомство ............................................................................................................. 428
Загрузка данных из файлов ..................................................................................................................... 429
Исследование структуры данных .......................................................................................................... 429
Индексация и выборка данных .............................................................................................................. 430
Группировка и агрегация данных ......................................................................................................... 430
Обработка пропущенных значений ..................................................................................................... 431
Создание новых столбцов и трансформации ................................................................................... 431
Базовые статистические операции ....................................................................................................... 432
Простая визуализация данных ............................................................................................................... 432
Практический пример: анализ продаж .............................................................................................. 433
Временные ряды и даты ............................................................................................................................ 433
Резюме и лучшие практики ..................................................................................................................... 434
13.3. Машинное обучение: scikit-leam ......................................................................................................... 434
Подготовка рабочей среды ....................................................................................................................... 434
Классификация: определение категорий ........................................................................................... 435
Регрессия: предсказание непрерывных значений ......................................................................... 436
Кластеризация: поиск скрытых групп ................................................................................................ 437
Оценка и улучшение моделей ................................................................................................................ 438
13.4. Выбор специализации: куда двигаться дальше ............................................................................ .439
Карта возможностей: основные направления специализации ................................................................ .439
Методика самооценки: определяем свои склонности .................................................................. 440
Построение траектории обучения ........................................................................................................ 441
Развитие soft skills и профессиональных навыков ......................................................................... 443
Заключение ......................................................................................................................................... 445
Путь, который мы прошли вместе ................................................................................................................ 445
Python как первый, но не последний язык ................................................................................................ 445
Влияние программирования на мышление ............................................................................................. 446
Ответственность разработчика ..................................................................................................................... 446
Заключительные размышления ................................................................................................................... 446
Download
Сайт не распространяет и не хранит электронные версии произведений, а лишь предоставляет доступ к создаваемому пользователями каталогу ссылок на торрент-файлы, которые содержат только списки хеш-сумм
Как скачивать? (для скачивания .torrent файлов необходима регистрация)
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error