Введение...................................................................................................15
Предисловие..............................................................................................16
Благодарности...........................................................................................17
О книге......................................................................................................18
Как использовать книгу ........................................................................................................................18
Структура книги ......................................................................................................................................19
Правила оформления кода...................................................................................................................20
Упражнения ...............................................................................................................................................21
Ответы к упражнениям .........................................................................................................................21
Исходный код ...........................................................................................................................................21
Системные требования .........................................................................................................................21
Программные требования ....................................................................................................................21
Об авторе ....................................................................................................................................................22
Об иллюстрации на обложке ..............................................................................................................22
От издательства .......................................................................................................................................22
Часть 1. Первые шаги ............................................................................23
Глава.1..Знакомство.с.Python......................................................................24
1.1. Почему мне стоит использовать Python? ...............................................................................24
1.2. Сильные стороны Python .............................................................................................................25
1.3. Не самые сильные стороны Python ...........................................................................................28
1.4. Почему нужно изучать Python 3? ..............................................................................................30
Итоги ...........................................................................................................................................................31
Глава.2..Первые.шаги..................................................................................32
2.1. Установка Python .............................................................................................................................32
2.2. Базовый интерактивный режим и IDLE .................................................................................34
2.3. Использование окна оболочки Python в IDLE .....................................................................36
2.4. Hello, World ........................................................................................................................................37
2.5. Использование интерактивного приглашения для изучения Python ..........................38
Итоги ...........................................................................................................................................................39
Глава.3..Краткий.обзор.Python....................................................................40
3.1. Общее описание Python ................................................................................................................40
3.2. Встроенные типы данных .............................................................................................................41
3.3. Управляющие конструкции .........................................................................................................49
3.4. Создание модуля..............................................................................................................................53
3.5. Объектно-ориентированное программирование..................................................................54
Итоги ...........................................................................................................................................................56
Часть 2. Основной материал .................................................................57
Глава.4..Основы.......................................................................................... 58
4.1. Отступы и оформление блоков ..................................................................................................58
4.2. Комментарии.....................................................................................................................................60
4.3. Переменные и присваивание .......................................................................................................60
4.4. Выражения .........................................................................................................................................62
4.5. Строки .................................................................................................................................................63
4.6. Числа ....................................................................................................................................................64
4.7. Значение None ..................................................................................................................................68
4.8. Получение данных от пользователя .........................................................................................68
4.9. Встроенные операторы ..................................................................................................................69
4.10. Основной стиль программирования на Python ..................................................................69
Итоги ...........................................................................................................................................................70
Глава.5..Списки,.кортежи.и.множества......................................................... 71
5.1. Сходство между списками и массивами ..................................................................................71
5.2. Индексы списков .............................................................................................................................72
5.3. Модификация списков ..................................................................................................................74
5.4. Сортировка списков .......................................................................................................................77
5.5. Другие распространенные операции со списками ...............................................................79
5.6. Вложенные списки и глубокое копирование .........................................................................83
5.7. Кортежи ..............................................................................................................................................85
5.8. Множества .........................................................................................................................................89
Итоги ...........................................................................................................................................................91
Глава.6..Строки..........................................................................................92
6.1. Строки как последовательности символов ............................................................................92
6.2. Основные операции со строками ...............................................................................................93
6.3. Специальные символы и экранированные последовательности ....................................93
6.4. Методы строк ....................................................................................................................................96
6.5. Преобразование объектов в строки ........................................................................................105
6.6. Использование метода format ..................................................................................................107
6.7. Форматирование строк с символом % ..................................................................................109
6.8. Строковая интерполяция ..........................................................................................................111
6.9. Байтовые строки ...........................................................................................................................112
Итоги ........................................................................................................................................................113
Глава.7..Словари....................................................................................... 114
7.1. Что такое словарь? .......................................................................................................................114
7.2. Другие операции со словарями ...............................................................................................116
7.3. Подсчет слов ...................................................................................................................................119
7.4. Что может использоваться в качестве ключа? ...................................................................120
7.5. Разреженные матрицы ................................................................................................................121
7.6. Словари как кэши .........................................................................................................................122
7.7. Эффективность словарей ..........................................................................................................123
Итоги ........................................................................................................................................................124
Глава.8..Управляющие.конструкции........................................................... 125
8.1. Цикл while .......................................................................................................................................125
8.2. Команда if-elif-else ........................................................................................................................126
8.3. Цикл for ............................................................................................................................................127
8.4. Генераторы строк и словарей ....................................................................................................131
8.5. Команды, блоки и отступы ........................................................................................................133
8.6. Логические значения и выражения .......................................................................................136
8.7. Простая программа для анализа текстового файла ..........................................................138
Итоги ........................................................................................................................................................139
Глава.9..Функции.....................................................................................140
9.1. Базовые определения функций ...............................................................................................140
9.2. Параметры функций....................................................................................................................141
9.3. Изменяемые объекты в качестве аргументов .....................................................................145
9.4. Локальные, нелокальные и глобальные переменные ......................................................147
9.5. Присваивание функций переменным ...................................................................................149
9.6. Лямбда-выражения ......................................................................................................................149
9.7. Функции-генераторы ..................................................................................................................150
9.8. Декораторы .....................................................................................................................................151
Итоги ........................................................................................................................................................153
Глава.10..Модули.и.правила.областей.видимости........................................154
10.1. Что такое модуль? ......................................................................................................................154
10.2. Первый модуль ...........................................................................................................................155
10.3. Команда import ...........................................................................................................................158
10.4. Путь поиска модулей ................................................................................................................158
10.5. Приватные имена в модулях ..................................................................................................160
10.6. Библиотечные и сторонние модули ....................................................................................161
10.7. Правила областей видимости и пространств имен Python .........................................162
Итоги ........................................................................................................................................................169
Глава.11..Программы.Python..................................................................... 170
11.1. Создание простейшей программы........................................................................................171
11.2. Прямое исполнение сценариев в UNIX .............................................................................176
11.3. Сценарии в macOS .....................................................................................................................177
11.4. Возможности выполнения сценариев в Windows ...........................................................177
11.5. Программы и модули ................................................................................................................178
11.6. Распространение приложений Python ...............................................................................183
Итоги ........................................................................................................................................................185
Глава.12..Работа.с.файловой.системой.......................................................187
12.1. os и os.path против pathlib .......................................................................................................187
12.2. Пути и имена ................................................................................................................................188
12.3. Получение информации о файлах .......................................................................................196
12.4. Другие операции с файловой системой .............................................................................198
12.5. Обработка всех файлов в поддереве каталогов ...............................................................201
Итоги ........................................................................................................................................................202
Глава.13..Чтение.и.запись.файлов..............................................................205
13.1. Открытие файлов и объектов file .........................................................................................205
13.2. Закрытие файлов ........................................................................................................................206
13.3. Открытие файлов для записи или в других режимах ...................................................206
13.4. Функции чтения и записи текстовых и двоичных данных .........................................207
13.5. Чтение и запись с использованием pathlib ........................................................................210
13.6. Экранный ввод/вывод и перенаправление .......................................................................210
13.7. Чтение структурированных двоичных данных с использованием модуля struct ..........................................................................................................................................213
13.8. Сериализация и модуль pickle ...............................................................................................215
13.9. Модуль shelve ..............................................................................................................................218
Итоги ........................................................................................................................................................221
Глава.14..Исключения............................................................................... 222
14.1. Знакомство с исключениями .................................................................................................222
14.2. Исключения в Python ...............................................................................................................226
14.3. Менеджеры контекста и ключевое слово with .................................................................236
Итоги ........................................................................................................................................................238
Часть 3. Расширенные возможности языка ......................................239
Глава.15..Классы.и.объектно-ориентированное.программирование.............. 240
15.1. Определение классов ................................................................................................................240
15.2. Переменные экземпляров .......................................................................................................242
15.3. Методы ...........................................................................................................................................243
15.4. Переменные класса ....................................................................................................................245
15.5. Статические методы и методы классов ..............................................................................247
15.6. Наследование...............................................................................................................................249
15.7. Наследование и переменные экземпляров и классов ....................................................252
15.8. Основные возможности классов Python............................................................................253
15.9. Приватные переменные и приватные методы ..................................................................255
15.10. Использование @property для создания более гибких переменных экземпляров ..................................................................................................................256
15.11. Правила области видимости и пространств имен для экземпляров классов ...................................................................................................................258
15.12. Деструкторы и управление памятью ................................................................................262
15.13. Множественное наследование ............................................................................................263
Итоги ........................................................................................................................................................265
Глава.16..Регулярные.выражения..............................................................266
16.1. Что такое регулярное выражение?.......................................................................................266
16.2. Регулярные выражения со специальными символами .................................................267
16.3. Регулярные выражения и необработанные строки ........................................................268
16.4. Извлечение совпавшего текста из строк ............................................................................270
16.5. Замена текста с использованием регулярных выражений ..........................................274
Итоги ........................................................................................................................................................276
Глава.17..Типы.данных.как.объекты........................................................... 277
17.1. Типы тоже являются объектами ...........................................................................................277
17.2. Использование типов ...............................................................................................................278
17.3. Типы и пользовательские классы .........................................................................................278
17.4. Утиная типизация ......................................................................................................................280
17.5. Что такое специальный метод-атрибут? ............................................................................281
17.6. Поведение объекта как списка...............................................................................................282
17.7. Специальный метод-атрибут __getitem__ ........................................................................283
17.8. Полноценная эмуляция списков объектами ....................................................................286
17.9. Субклассирование встроенных типов ................................................................................288
17.10. Когда используются специальные методы-атрибуты .................................................290
Итоги ........................................................................................................................................................291
Глава.18..Пакеты......................................................................................292
18.1. Что такое пакет? .........................................................................................................................292
18.2. Первый пример ...........................................................................................................................293
18.3. Конкретный пример ..................................................................................................................294
18.4. Атрибут __all__ ..........................................................................................................................298
18.5. Правильное использование пакетов ....................................................................................299
Итоги ........................................................................................................................................................300
Глава.19..Использование.библиотек.Python...............................................301
19.1. «Батарейки в комплекте»: стандартная библиотека ......................................................301
19.2. За пределами стандартной библиотеки .............................................................................306
19.3. Установка дополнительных библиотек Python ...............................................................307
19.4. Установка библиотек Python с использованием pip и venv ........................................307
19.5. PyPI (CheeseShop) .....................................................................................................................309
Итоги ........................................................................................................................................................309
Часть 4. Работа с данными ..................................................................311
Глава.20..Обработка.данных.в.файлах........................................................ 312
20.1. Проблема: бесконечный поток файлов данных ...............................................................312
20.2. Сценарий: адовая поставка продуктов ...............................................................................313
20.3. Дальнейшая организация ........................................................................................................315
20.4. Экономия места: сжатие и удаление ...................................................................................317
Итоги ........................................................................................................................................................320
Глава.21..Обработка.файлов.данных.......................................................... 321
21.1. Знакомство с ETL ......................................................................................................................321
21.2. Чтение текстовых файлов .......................................................................................................322
21.3. Файлы Excel .................................................................................................................................331
21.4. Очистка данных ..........................................................................................................................333
21.5. Запись файлов данных .............................................................................................................336
Итоги ........................................................................................................................................................339
Глава.22..Передача.данных.по.сети............................................................340
22.1. Получение файлов .....................................................................................................................340
22.2. Получение данных через API ................................................................................................344
22.3. Структурированные форматы данных ...............................................................................346
22.4. Извлечение веб-данных ...........................................................................................................355
Итоги ........................................................................................................................................................359
Глава.23..Хранение.данных........................................................................ 360
23.1. Реляционные базы данных .....................................................................................................360
23.2. SQLite: использование базы данных sqlite3 .....................................................................361
23.3. MySQL, PostgreSQL и другие реляционные базы данных ..........................................363 23.4.
Простая работа с базами данных с ORM ...........................................................................364
23.5. Базы данных NoSQL .................................................................................................................371
23.6. Хранение пар «ключ–значение» в Redis ............................................................................372
23.7. Документы в MongoDB ...........................................................................................................375
Итоги ........................................................................................................................................................378
Глава.24..Анализ.данных...........................................................................379
24.1. Средства Python для анализа данных .................................................................................379
24.2. Jupyter Notebook .........................................................................................................................380
24.3. Python и pandas ...........................................................................................................................383
24.4. Очистка данных ..........................................................................................................................385
24.5. Агрегирование и преобразования данных .........................................................................390
24.6. Графическое представление данных ....................................................................................395
24.7. Когда pandas использовать не рекомендуется .................................................................396
Итоги ........................................................................................................................................................396
Практический.пример............................................................................... 397
Загрузка данных ...................................................................................................................................397
Получение и разбор погодных данных .........................................................................................407
Приложение.А..Документация.Python....................................................... 414
А.1. Обращение к документации Python в интернете .............................................................414
А.2. Как стать питонистом ................................................................................................................418
A.3. PEP 8 — руководство по стилю программирования Python ........................................420
A.4. Комментарии .................................................................................................................................426
A.5. Дзен Python ...................................................................................................................................435
Приложение.Б..Ответы.на.упражнения......................................................437
Б.1. Глава 4 ..............................................................................................................................................437
Б.2. Глава 5 ..............................................................................................................................................440
Б.3. Глава 6 ..............................................................................................................................................443
Б.4. Глава 7 ..............................................................................................................................................446
Б.5. Глава 8 ..............................................................................................................................................448
Б.6. Глава 9 ..............................................................................................................................................450
Б.7. Глава 10 ............................................................................................................................................454
Б.8. Глава 11 ............................................................................................................................................455
Б.9. Глава 12 ............................................................................................................................................456
Б.10. Глава 13 .........................................................................................................................................457
Б.11. Глава 14 .........................................................................................................................................460
Б.12. Глава 15 .........................................................................................................................................463
Б.13. Глава 16 .........................................................................................................................................467
Б.14. Глава 17 .........................................................................................................................................469
Б.15. Глава 18 .........................................................................................................................................470
Б.16. Глава 20 .........................................................................................................................................471
Б.17. Глава 21 .........................................................................................................................................473
Б.18. Глава 22 .........................................................................................................................................474
Б.19. Глава 23 .........................................................................................................................................477
Б.20. Глава 24 .........................................................................................................................................479
Вы уже умеете кодить на одном или нескольких языках программирования? Тогда настала пора пройти экспресс-курс Python. Впервые на русском языке выходит новое издание одной из самых популярных книг издательства Manning.
С помощью этой книги вы можете быстро перейти от основ к управлению и структурам данных, чтобы создавать, тестировать и развертывать полноценные приложения. Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.