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

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

Простой Python. Современный стиль программирования. 2 изд
Автор: Любанович Билл
Дата выхода: 2021
Издательство: Питер
Количество страниц: 592
Размер файла: 3.5 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

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

Введение....26

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

Что нового во втором издании....27

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

Версии Python....31

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

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

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

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

Часть I. Основы Python....35

Глава 1. Python: с чем его едят....36

Тайны....36

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

Более объемная программа....40

Python в реальном мире....44

Python против языка с планеты Х....45

Почему же Python?....48

Когда не стоит использовать Python....49

Python 2 против Python 3....50

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

Запуск Python....51

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

Файлы Python....52

Что дальше?....53

Момент просветления....53

Читайте далее....54

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

Глава 2. Данные: типы, значения, переменные и имена....55

В Python данные являются объектами....55

Типы....56

Изменчивость....57

Значения-литералы....58

Переменные....58

Присваивание....60

Переменные — это имена, а не локации....61

Присваивание нескольким именам....64

Переназначение имени....64

Копирование....64

Выбираем хорошее имя переменной....65

Читайте далее....66

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

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

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

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

Числа-литералы....68

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

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

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

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

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

Насколько объемен тип int?....78

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

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

Читайте далее....81

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

Глава 4. Выбираем с помощью оператора if....82

Комментируем с помощью символа #....82

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

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

Что есть истина?....87

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

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

Читайте далее....90

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

Глава 5. Текстовые строки....91

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

Создаем строки с помощью функции str()....94

Создаем escape-последовательности с помощью символа \....94

Объединяем строки с использованием символа +....96

Размножаем строки с помощью символа *....96

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

Извлекаем подстроки, используя разделение....98

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

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

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

Заменяем символы с использованием функции replace()....101

Устраняем символы с помощью функции strip()....102

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

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

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

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

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

Новый стиль: используем символы {} и функцию format()....108

Самый новый стиль: f-строки....110

Что еще можно делать со строками....111

Читайте далее....111

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

Глава 6. Создаем циклы с помощью ключевых слов while и for....113

Повторяем действия с помощью цикла while....113

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

Пропускаем итерации, используя оператор continue....114

Проверяем, завершился ли цикл раньше, с помощью блока else....115

Выполняем итерации с использованием ключевых слов for и in....115

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

Пропускаем итерации, используя оператор continue....116

Проверяем, завершился ли цикл раньше, с помощью блока else....116

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

Прочие итераторы....118

Читайте далее....118

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

Глава 7. Кортежи и списки....119

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

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

Создаем кортежи с помощью функции tuple()....121

Объединяем кортежи с помощью оператора +....121

Размножаем элементы с помощью оператора * ....122

Сравниваем кортежи....122

Итерируем по кортежам с помощью for и in....122

Изменяем кортеж....122

Списки....123

Создаем списки с помощью скобок []....123

Создаем список или преобразуем в список с помощью функции list()....123

Создаем список из строки с использованием функции split()....124

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

Извлекаем элементы с помощью разделения....125

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

Добавляем элемент на определенное место с помощью функции insert()....126

Размножаем элементы с помощью оператора *....127

Объединяем списки с помощью метода extend() или оператора +....127

Изменяем элемент с помощью конструкции [смещение]....128

Изменяем элементы с помощью разделения....128

Удаляем заданный элемент с помощью оператора del....129

Удаляем элемент по значению с помощью функции remove()....129

Получаем и удаляем заданный элемент с помощью функции pop()....129

Удаляем все элементы с помощью функции clear()....130

Определяем смещение по значению с помощью функции index()....130

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

Подсчитываем количество включений значения с помощью функции count()....131

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

Меняем порядок элементов с помощью функций sort() или sorted()....132

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

Присваиваем с помощью оператора =....133

Копируем списки с помощью функций copy() и list() или путем разделения....134

Копируем все с помощью функции deepcopy()....134

Сравниваем списки ....135

Итерируем по спискам с помощью операторов for и in....136

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

Создаем список с помощью списковых включений....138

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

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

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

Читайте далее....142

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

Глава 8. Словари и множества....144

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

Создаем словарь с помощью {}....144

Создаем словарь с помощью функции dict()....145

Преобразуем с помощью функции dict()....146

Добавляем или изменяем элемент с помощью конструкции [ключ]....146

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

Получаем все ключи с помощью функции keys()....148

Получаем все значения с помощью функции values()....149

Получаем все пары «ключ — значение» с помощью функции items()....149

Получаем длину словаря с помощью функции len()....149

Объединяем словари с помощью конструкции {**a, **b}....149

Объединяем словари с помощью функции update()....150

Удаляем элементы по их ключу с помощью оператора del....151

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

Удаляем все элементы с помощью функции clear()....151

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

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

Копируем значения с помощью функции copy()....152

Копируем все с помощью функции deepcopy() ....153

Сравниваем словари....154

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

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

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

Создаем множество с помощью функции set()....157

Преобразуем другие типы данных с помощью функции set()....157

Получаем длину множества с помощью функции len()....158

Добавляем элемент с помощью функции add()....158

Удаляем элемент с помощью функции remove()....158

Итерируем по множествам с помощью for и in....158

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

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

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

Создаем неизменяемое множество с помощью функции frozenset()....162

Структуры данных, которые мы уже рассмотрели....163

Создание крупных структур данных....164

Читайте далее....164

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

Глава 9. Функции....166

Определяем функцию с помощью ключевого слова def....166

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

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

None — это полезно....169

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

Аргументы — ключевые слова....171

Указываем значение параметра по умолчанию....171

Получаем/разбиваем аргументы — ключевые слова с помощью символа *....172

Получаем/разбиваем аргументы — ключевые слова с помощью символов **....174

Аргументы, передаваемые только по ключевым словам....175

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

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

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

Внутренние функции....179

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

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

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

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

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

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

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

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

Асинхронные функции....190

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

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

Создаем собственные исключения....192

Читайте далее....193

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

Глава 10. Ой-ой-ой: объекты и классы....194

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

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

Определяем класс с помощью ключевого слова class....195

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

Методы....197

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

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

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

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

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

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

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

Примеси....205

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

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

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

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

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

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

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

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

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

Методы объектов....211

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

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

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

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

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

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

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

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

Attrs....222

Читайте далее....222

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

Глава 11. Модули, пакеты и программы....224

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

Импортируем модуль....224

Импортируем модуль с другим именем....226

Импортируем только самое необходимое....226

Пакеты....227

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

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

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

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

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

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

Подсчитываем элементы с помощью функции Counter()....233

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

Стек + очередь == deque....235

Итерируем по структурам кода с помощью модуля itertools....236

Красиво выводим данные на экран с помощью функции pprint()....238

Работаем со случайными числами....238

Нужно больше кода....239

Читайте далее....240

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

Часть II. Python на практике....241

Глава 12. Обрабатываем данные....242

Текстовые строки: Unicode....243

Строки формата Unicode в Python 3....244

Кодирование и декодирование с помощью кодировки UTF-8....246

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

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

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

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

Подробная информация....252

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

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

Ищем первое совпадение с помощью функции search()....255

Ищем все совпадения, используя функцию findall()....255

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

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

Шаблоны: специальные символы....256

Шаблоны: использование спецификаторов....258

Шаблоны: указываем способ вывода совпадения....261

Бинарные данные....261

bytes и bytearray....262

Преобразуем бинарные данные с помощью модуля struct....263

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

Преобразуем байты/строки с помощью модуля binascii....267

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

Аналогия с ювелирными изделиями....268

Читайте далее....268

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

Глава 13. Календари и часы....271

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

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

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

Читаем и записываем дату и время....277

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

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

Читайте далее....282

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

Глава 14. Файлы и каталоги....283

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

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

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

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

Считываем данные из текстового файла, используя функции read(), readline() и readlines()....286

Записываем данные в бинарный файл с помощью функции write()....288

Читаем бинарные файлы с помощью функции read()....289

Закрываем файлы автоматически с помощью ключевого слова with....289

Меняем позицию с помощью функции seek()....289

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

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

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

Проверяем тип с помощью функции isfile()....292

Копируем файлы, используя функцию copy()....293

Изменяем имена файлов с помощью функции rename()....293

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

Изменяем разрешения с помощью функции chmod()....294

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

Удаляем файл с помощью функции remove()....294

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

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

Удаляем каталог, используя функцию rmdir()....295

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

Изменяем текущий каталог с помощью функции chdir()....296

Перечисляем совпадающие файлы, используя функцию glob()....296

Pathname....297

Получаем pathname с помощью функции abspath()....298

Получаем символьную ссылку с помощью функции realpath()....298

Построение pathname с помощью функции os.path.join()....298

Модуль pathlib....298

BytesIO и StringIO....299

Читайте далее....301

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

Глава 15. Данные во времени: процессы и конкурентность....302

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

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

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

Убиваем процесс, используя функцию terminate()....305

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

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

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

Invoke....307

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

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

Очереди....309

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

Потоки....311

Concurrent.futures....314

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

Twisted....320

Asyncio....321

Redis....321

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

Читайте далее....326

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

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

Плоские текстовые файлы....327

Текстовые файлы, дополненные пробелами....328

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

CSV....328

XML....331

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

HTML....333

JSON....334

YAML....337

Tablib....338

Pandas....338

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

Бинарные файлы....341

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

HDF5....341

TileDB....342

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

SQL....343

DB-API....345

SQLite....345

MySQL....347

PostgreSQL....347

SQLAlchemy....348

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

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

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

Memcached....355

Redis....356

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

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

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

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

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

Читайте далее....366

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

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

TCP/IP....368

Сокеты....370

Scapy....374

Netcat....374

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

Паттерн «Запрос — ответ»....375

ZeroMQ....375

Другие инструменты обмена сообщениями....380

Паттерн «Публикация — подписка»....380

Redis....380

ZeroMQ....382

Другие инструменты «публикации — подписки»....383

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

Доменная система имен....384

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

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

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

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

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

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

Удаленные вызовы процедур....388

XML RPC....389

JSON RPC....390

MessagePack RPC....391

Zerorpc....392

gRPC....393

Twirp....393

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

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

Hadoop....394

Spark....395

Disco....395

Dask....395

Работаем в облаках....396

Amazon Web Services....397

Google....397

Microsoft Azure....397

OpenStack....398

Docker....398

Kubernetes....398

Читайте далее....398

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

Глава 18. Распутываем Всемирную паутину....400

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

Тестируем с помощью telnet....402

Тестируем с помощью curl....403

Тестируем с использованием httpie....404

Тестируем с помощью httpbin....405

Стандартные веб-библиотеки Python....405

За пределами стандартной библиотеки: requests....407

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

Простейший веб-сервер Python....409

Web Server Gateway Interface (WSGI)....410

ASGI....411

Apache....411

NGINX....412

Другие веб-серверы Python....413

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

Bottle....414

Flask....416

Django....420

Другие фреймворки....421

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

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

Модуль webbrowser....422

Модуль webview....423

REST API....424

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

Scrapy....425

BeautifulSoup....425

Requests-HTML....426

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

Читайте далее....429

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

Глава 19. Быть питонщиком....431

О программировании....431

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

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

pip....433

virtualenv....434

pipenv....434

Менеджер пакетов....434

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

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

IDLE....435

PyCharm....435

IPython....436

Jupyter Notebook....438

JupyterLab....438

Именование и документирование....438

Добавление подсказок типов....440

Тестирование кода....440

Программы pylint, pyflakes, flake8 или PEP-8....441

Пакет unittest....443

Пакет doctest....447

Пакет nose....448

Другие фреймворки для тестирования....449

Постоянная интеграция....449

Отладка кода....450

Функция print()....450

Отладка с помощью декораторов....451

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

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

Записываем в журнал сообщения об ошибках....458

Оптимизация кода....460

Измеряем время....461

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

Cython, NumPy и расширения C....465

PyPy....465

Numba....466

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

Mercurial....467

Git....467

Распространение ваших программ....470

Клонируйте эту книгу....470

Как узнать больше....470

Книги....471

Сайты....471

Группы....472

Конференции....472

Вакансии, связанные с Python....472

Читайте далее....473

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

Глава 20. Пи-Арт....474

Двумерная графика....474

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

PIL и Pillow....475

ImageMagick....478

Трехмерная графика....478

Трехмерная анимация....479

Графические пользовательские интерфейсы (GUI)....479

Диаграммы, графики и визуализация....481

Matplotlib....481

Seaborn....483

Bokeh....485

Игры....485

Аудио и музыка....486

Читайте далее....486

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

Глава 21. За работой....487

The Microsoft Office Suite....487

Выполняем бизнес-задачи....488

Обработка бизнес-данных....489

Извлечение, преобразование и загрузка....489

Валидация данных....493

Дополнительные источники информации....493

Пакеты для работы с бизнес-данными с открытым исходным кодом ....494

Python в области финансов....494

Безопасность бизнес-данных....495

Карты....495

Форматы....496

Нарисуем карту на основе шейп-файла....496

Geopandas....498

Другие пакеты для работы с картами....500

Приложения и данные....501

Читайте далее....502

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

Глава 22. Py в науке....503

Математика и статистика в стандартной библиотеке....503

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

Работа с комплексными числами....505

Рассчитываем точное значение чисел с плавающей точкой с помощью модуля decimal....506

Выполняем вычисления для рациональных чисел с помощью модуля fractions....507

Используем Packed Sequences с помощью модуля array....507

Обрабатываем простую статистику с помощью модуля statistics....508

Перемножение матриц....508

Python для науки....508

NumPy....508

Создаем массив с помощью функции array()....509

Создаем массив с помощью функции arange()....510

Создаем массив с помощью функций zeros(), ones() и random()....511

Изменяем форму массива с помощью метода reshape()....512

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

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

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

Библиотека SciPy....515

Библиотека SciKit....516

Pandas....516

Python и научные области....517

Читайте далее....518

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

Приложения....519

Приложение А. Аппаратное и программное обеспечение для начинающих программистов....520

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

Компьютеры пещерных людей....520

Электричество....521

Изобретения....521

Идеальный компьютер....522

Процессор....522

Память и кэш....522

Хранение....522

Ввод данных....523

Вывод данных....523

Относительное время доступа....523

Программное обеспечение....524

Вначале был бит....524

Машинный язык....524

Ассемблер....525

Высокоуровневые языки....525

Операционные системы....526

Виртуальные машины....527

Контейнеры....527

Распределенные вычисления и сети....527

Облако....528

Kubernetes....528

Приложение Б. Установка Python 3....530

Проверьте свою версию Python....530

Установка стандартной версии Python....531

macOS....532

Windows....534

Linux или Unix....535

Установка менеджера пакетов pip ....535

Установка virtualenv....535

Другие способы работы с пакетами....536

Устанавливаем Anaconda....536

Приложение В. Нечто совершенно иное: async....538

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

Async против…....542

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

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

1. Python: с чем его едят....544

2. Типы данных, значения, переменные и имена....545

3. Числа....545

4. Выбираем с помощью if....546

5. Текстовые строки....547

6. Создаем циклы с помощью ключевых слов while и for....551

7. Кортежи и списки....552

8. Словари....556

9. Функции....559

10. Ой-ой-ой: объекты и классы....560

11. Модули, пакеты и программы....564

12. Обрабатываем данные....566

13. Календари и часы....571

14. Файлы и каталоги....572

15. Данные во времени: процессы и конкурентность....573

16. Данные в коробке: устойчивые хранилища....574

17. Данные в пространстве: сети....577

18. Распутываем Всемирную паутину....584

19. Быть питонщиком....585

20. Пи-Арт....585

21. За работой....586

22. Py в науке....586

Приложение Д. Вспомогательные таблицы ....587

Приоритет операторов....587

Строковые методы....588

Изменение регистра....588

Поиск....588

Изменение....588

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

Тип строки....589

Атрибуты модуля string....589

Эпилог....591

«Простой Python» познакомит вас с одним из самых популярных языков программирования. Книга идеально подойдет как начинающим, так и опытным программистам, желающим добавить Python к списку освоенных языков.

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

Что изменилось?

  • Абсолютно новые 100 страниц (там есть котики).
  • Глав стало большое, но они стали короче.
  • Появилась глава, посвященная типам данных, переменным и именам.
  • Добавился рассказ о новых возможностях Python, таких как f-строки.
  • Обновилась информация о сторонних библиотеках.
  • Новые примеры кода.
  • Дан обзор библиотеки asyncio.
  • Рассмотрен новый стек технологий: контейнеры, облачные технологии, data science и машинное обучение.

Что осталось неизменным?

  • Примеры c утками и плохими стихотворениями. Они навечно с нами.

Похожее:

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

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