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

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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

Author(s): Билл Любанович
Series: Бестселлеры O’Reilly
Edition: 2
Publisher: Питер
Year: 2021

Language: Russian
Commentary: Vector PDF
Pages: 592
City: СПб.
Tags: Programming; Debugging; Python; Microsoft Office; Data Visualization; Logging; Best Practices; Graphics; NumPy; pandas; Object-Oriented Programming; SciPy; Testing; Elementary

Об авторе
Введение
Для кого эта книга
Что нового во втором издании
Структура книги
Версии Python
Условные обозначения
Использование примеров кода
От издательства
Благодарности
Часть I. Основы Python
Глава 1. Python: с чем его едят
Тайны
Маленькие программы
Более объемная программа
Python в реальном мире
Python против языка с планеты Х
Почему же Python?
Когда не стоит использовать Python
Python 2 против Python 3
Установка Python
Запуск Python
Интерактивный интерпретатор
Файлы Python
Что дальше?
Момент просветления
Читайте далее
Упражнения
Глава 2. Данные: типы, значения, переменные и имена
В Python данные являются объектами
Типы
Изменчивость
Значения-литералы
Переменные
Присваивание
Переменные — это имена, а не локации
Присваивание нескольким именам
Переназначение имени
Копирование
Выбираем хорошее имя переменной
Читайте далее
Упражнения
Глава 3. Числа
Булевы значения
Целые числа
Числа-литералы
Операции с целыми числами
Целые числа и переменные
Приоритет операций
Системы счисления
Преобразования типов
Насколько объемен тип int?
Числа с плавающей точкой
Математические функции
Читайте далее
Упражнения
Глава 4. Выбираем с помощью оператора if
Комментируем с помощью символа #
Продлеваем строки с помощью символа \
Сравниваем с помощью операторов if, elif и else
Что есть истина?
Выполняем несколько сравнений с помощью оператора in
Новое: I Am the Walrus
Читайте далее
Упражнения
Глава 5. Текстовые строки
Создаем строки с помощью кавычек
Создаем строки с помощью функции str()
Создаем escape-последовательности с помощью символа \
Объединяем строки с использованием символа +
Размножаем строки с помощью символа *
Извлекаем символ с помощью символов [ ]
Извлекаем подстроки, используя разделение
Измеряем длину строки с помощью функции len()
Разделяем строку с помощью функции split()
Объединяем строки с помощью функции join()
Заменяем символы с использованием функции replace()
Устраняем символы с помощью функции strip()
Поиск и выбор
Регистр
Выравнивание
Форматирование
Старый стиль: %
Новый стиль: используем символы {} и функцию format()
Самый новый стиль: f-строки
Что еще можно делать со строками
Читайте далее
Упражнения
Глава 6. Создаем циклы с помощью ключевых слов while и for
Повторяем действия с помощью цикла while
Прерываем цикл с помощью оператора break
Пропускаем итерации, используя оператор continue
Проверяем, завершился ли цикл раньше, с помощью блока else
Выполняем итерации с использованием ключевых слов for и in
Прерываем цикл с помощью оператора break
Пропускаем итерации, используя оператор continue
Проверяем, завершился ли цикл раньше, с помощью блока else
Генерируем числовые последовательности с помощью функции range()
Прочие итераторы
Читайте далее
Упражнения
Глава 7. Кортежи и списки
Кортежи
Создаем кортежи с помощью запятых и оператора ()
Создаем кортежи с помощью функции tuple()
Объединяем кортежи с помощью оператора +
Размножаем элементы с помощью оператора *
Сравниваем кортежи
Итерируем по кортежам с помощью for и in
Изменяем кортеж
Списки
Создаем списки с помощью скобок []
Создаем список или преобразуем в список с помощью функции list()
Создаем список из строки с использованием функции split()
Получаем элемент с помощью конструкции [смещение]
Извлекаем элементы с помощью разделения
Добавляем элемент в конец списка с помощью функции append()
Добавляем элемент на определенное место с помощью функции insert()
Размножаем элементы с помощью оператора *
Объединяем списки с помощью метода extend() или оператора +
Изменяем элемент с помощью конструкции [смещение]
Изменяем элементы с помощью разделения
Удаляем заданный элемент с помощью оператора del
Удаляем элемент по значению с помощью функции remove()
Получаем и удаляем заданный элемент с помощью функции pop()
Удаляем все элементы с помощью функции clear()
Определяем смещение по значению с помощью функции index()
Проверяем на наличие элемента в списке с помощью оператора in
Подсчитываем количество включений значения с помощью функции count()
Преобразуем список в строку с помощью функции join()
Меняем порядок элементов с помощью функций sort() или sorted()
Получаем длину списка с помощью функции len()
Присваиваем с помощью оператора =
Копируем списки с помощью функций copy() и list() или путем разделения
Копируем все с помощью функции deepcopy()
Сравниваем списки
Итерируем по спискам с помощью операторов for и in
Итерируем по нескольким последовательностям с помощью функции zip()
Создаем список с помощью списковых включений
Списки списков
Кортежи или списки?
Включений кортежей не существует
Читайте далее
Упражнения
Глава 8. Словари и множества
Словари
Создаем словарь с помощью {}
Создаем словарь с помощью функции dict()
Преобразуем с помощью функции dict()
Добавляем или изменяем элемент с помощью конструкции [ключ]
Получаем элемент словаря с помощью конструкции [ключ] или функции get()
Получаем все ключи с помощью функции keys()
Получаем все значения с помощью функции values()
Получаем все пары «ключ — значение» с помощью функции items()
Получаем длину словаря с помощью функции len()
Объединяем словари с помощью конструкции {**a, **b}
Объединяем словари с помощью функции update()
Удаляем элементы по их ключу с помощью оператора del
Получаем элемент по ключу и удаляем его с помощью функции pop()
Удаляем все элементы с помощью функции clear()
Проверяем на наличие ключа с помощью оператора in
Присваиваем значения с помощью оператора =
Копируем значения с помощью функции copy()
Копируем все с помощью функции deepcopy()
Сравниваем словари
Итерируем по словарям с помощью for и in
Включения словарей
Множества
Создаем множество с помощью функции set()
Преобразуем другие типы данных с помощью функции set()
Получаем длину множества с помощью функции len()
Добавляем элемент с помощью функции add()
Удаляем элемент с помощью функции remove()
Итерируем по множествам с помощью for и in
Проверяем на наличие значения с помощью оператора in
Комбинации и операторы
Включение множества
Создаем неизменяемое множество с помощью функции frozenset()
Структуры данных, которые мы уже рассмотрели
Создание крупных структур данных
Читайте далее
Упражнения
Глава 9. Функции
Определяем функцию с помощью ключевого слова def
Вызываем функцию с помощью скобок
Аргументы и параметры
None — это полезно
Позиционные аргументы
Аргументы — ключевые слова
Указываем значение параметра по умолчанию
Получаем/разбиваем аргументы — ключевые слова с помощью символа *
Получаем/разбиваем аргументы — ключевые слова с помощью символов **
Аргументы, передаваемые только по ключевым словам
Изменяемые и неизменяемые аргументы
Строки документации
Функции — это объекты первого класса
Внутренние функции
Анонимные функции: лямбда-выражения
Генераторы
Функции-генераторы
Включения генераторов
Декораторы
Пространства имен и область определения
Использование символов _ и __ в именах
Рекурсия
Асинхронные функции
Исключения
Обрабатываем ошибки с помощью операторов try и except
Создаем собственные исключения
Читайте далее
Упражнения
Глава 10. Ой-ой-ой: объекты и классы
Что такое объекты
Простые объекты
Определяем класс с помощью ключевого слова class
Атрибуты
Методы
Инициализация
Наследование
Наследование от родительского класса
Переопределение методов
Добавление метода
Получаем помощь от своего «родителя» с использованием метода super()
Множественное наследование
Примеси
В защиту self
Доступ к атрибутам
Прямой доступ
Геттеры и сеттеры
Свойства для доступа к атрибутам
Свойства для вычисляемых значений
Искажение имен для безопасности
Атрибуты классов и объектов
Типы методов
Методы объектов
Методы классов
Статические методы
Утиная типизация
Магические методы
Агрегирование и композиция
Когда использовать объекты, а когда — что-то другое
Именованные кортежи
Классы данных
Attrs
Читайте далее
Упражнения
Глава 11. Модули, пакеты и программы
Модули и оператор import
Импортируем модуль
Импортируем модуль с другим именем
Импортируем только самое необходимое
Пакеты
Путь поиска модуля
Относительный и абсолютный импорт
Пакеты пространств имен
Модули против объектов
Достоинства стандартной библиотеки Python
Обрабатываем отсутствующие ключи с помощью функций setdefault() и defaultdict()
Подсчитываем элементы с помощью функции Counter()
Упорядочиваем по ключу с помощью OrderedDict()
Стек + очередь == deque
Итерируем по структурам кода с помощью модуля itertools
Красиво выводим данные на экран с помощью функции pprint()
Работаем со случайными числами
Нужно больше кода
Читайте далее
Упражнения
Часть II. Python на практике
Глава 12. Обрабатываем данные
Текстовые строки: Unicode
Строки формата Unicode в Python 3
Кодирование и декодирование с помощью кодировки UTF-8
Кодирование
Декодирование
Сущности HTML
Нормализация
Подробная информация
Текстовые строки: регулярные выражения
Ищем точное начальное совпадение с помощью функции match()
Ищем первое совпадение с помощью функции search()
Ищем все совпадения, используя функцию findall()
Разбиваем совпадения с помощью функции split()
Заменяем совпадения с помощью функции sub()
Шаблоны: специальные символы
Шаблоны: использование спецификаторов
Шаблоны: указываем способ вывода совпадения
Бинарные данные
bytes и bytearray
Преобразуем бинарные данные с помощью модуля struct
Другие инструменты для работы с бинарными данными
Преобразуем байты/строки с помощью модуля binascii
Битовые операторы
Аналогия с ювелирными изделиями
Читайте далее
Упражнения
Глава 13. Календари и часы
Високосный год
Модуль datetime
Модуль time
Читаем и записываем дату и время
Все преобразования
Альтернативные модули
Читайте далее
Упражнения
Глава 14. Файлы и каталоги
Ввод информации в файлы и ее вывод из них
Создаем или открываем файлы с помощью функции open()
Записываем в текстовый файл с помощью функции print()
Записываем в текстовый файл с помощью функции write()
Считываем данные из текстового файла, используя функции read(), readline() и readlines()
Записываем данные в бинарный файл с помощью функции write()
Читаем бинарные файлы с помощью функции read()
Закрываем файлы автоматически с помощью ключевого слова with
Меняем позицию с помощью функции seek()
Отображение в памяти
Операции с файлами
Проверяем существование файла с помощью функции exists()
Проверяем тип с помощью функции isfile()
Копируем файлы, используя функцию copy()
Изменяем имена файлов с помощью функции rename()
Создаем ссылки с помощью функции link() или symlink()
Изменяем разрешения с помощью функции chmod()
Изменение владельца файла с помощью функции chown()
Удаляем файл с помощью функции remove()
Каталоги
Создаем каталог с помощью функции mkdir()
Удаляем каталог, используя функцию rmdir()
Выводим на экран содержимое каталога с помощью функции listdir()
Изменяем текущий каталог с помощью функции chdir()
Перечисляем совпадающие файлы, используя функцию glob()
Pathname
Получаем pathname с помощью функции abspath()
Получаем символьную ссылку с помощью функции realpath()
Построение pathname с помощью функции os.path.join()
Модуль pathlib
BytesIO и StringIO
Читайте далее
Упражнения
Глава 15. Данные во времени: процессы и конкурентность
Программы и процессы
Создаем процесс с помощью модуля subprocess
Создаем процесс с помощью модуля multiprocessing
Убиваем процесс, используя функцию terminate()
Получаем системную информацию с помощью модуля os
Получаем информацию о процессах с помощью модуля psutil
Автоматизация команд
Invoke
Другие вспомогательные методы для команд
Конкурентность
Очереди
Процессы
Потоки
Concurrent.futures
Зеленые потоки и gevent
Twisted
Asyncio
Redis
Помимо очередей
Читайте далее
Упражнения
Глава 16. Данные в коробке: надежные хранилища
Плоские текстовые файлы
Текстовые файлы, дополненные пробелами
Структурированные текстовые файлы
CSV
XML
Примечание о безопасности XML
HTML
JSON
YAML
Tablib
Pandas
Конфигурационные файлы
Бинарные файлы
Электронные таблицы
HDF5
TileDB
Реляционные базы данных
SQL
DB-API
SQLite
MySQL
PostgreSQL
SQLAlchemy
Другие пакеты для работы с базами данных
Хранилища данных NoSQL
Семейство dbm
Memcached
Redis
Документоориентированные базы данных
Базы данных временных рядов
Графовые базы данных
Другие серверы NoSQL
Полнотекстовые базы данных
Читайте далее
Упражнения
Глава 17. Данные в пространстве: сети
TCP/IP
Сокеты
Scapy
Netcat
Паттерны для работы с сетями
Паттерн «Запрос — ответ»
ZeroMQ
Другие инструменты обмена сообщениями
Паттерн «Публикация — подписка»
Redis
ZeroMQ
Другие инструменты «публикации — подписки»
Интернет-сервисы
Доменная система имен
Модули Python для работы с электронной почтой
Другие протоколы
Веб-сервисы и API
Сериализация данных
Сериализация с помощью pickle
Другие форматы сериализации
Удаленные вызовы процедур
XML RPC
JSON RPC
MessagePack RPC
Zerorpc
gRPC
Twirp
Инструменты удаленного управления
Работаем с большими объемами данных
Hadoop
Spark
Disco
Dask
Работаем в облаках
Amazon Web Services
Google
Microsoft Azure
OpenStack
Docker
Kubernetes
Читайте далее
Упражнения
Глава 18. Распутываем Всемирную паутину
Веб-клиенты
Тестируем с помощью telnet
Тестируем с помощью curl
Тестируем с использованием httpie
Тестируем с помощью httpbin
Стандартные веб-библиотеки Python
За пределами стандартной библиотеки: requests
Веб-серверы
Простейший веб-сервер Python
Web Server Gateway Interface (WSGI)
ASGI
Apache
NGINX
Другие веб-серверы Python
Фреймворки для работы веб-серверами
Bottle
Flask
Django
Другие фреймворки
Фреймворки для работы с базами данных
Веб-сервисы и автоматизация
Модуль webbrowser
Модуль webview
REST API
Поиск и выборка данных
Scrapy
BeautifulSoup
Requests-HTML
Давайте посмотрим фильм
Читайте далее
Упражнения
Глава 19. Быть питонщиком
О программировании
Ищем код на Python
Установка пакетов
pip
virtualenv
pipenv
Менеджер пакетов
Установка из исходного кода
Интегрированные среды разработки
IDLE
PyCharm
IPython
Jupyter Notebook
JupyterLab
Именование и документирование
Добавление подсказок типов
Тестирование кода
Программы pylint, pyflakes, flake8 или PEP-8
Пакет unittest
Пакет doctest
Пакет nose
Другие фреймворки для тестирования
Постоянная интеграция
Отладка кода
Функция print()
Отладка с помощью декораторов
Отладчик pdb
Функция breakpoint()
Записываем в журнал сообщения об ошибках
Оптимизация кода
Измеряем время
Алгоритмы и структуры данных
Cython, NumPy и расширения C
PyPy
Numba
Управление исходным кодом
Mercurial
Git
Распространение ваших программ
Клонируйте эту книгу
Как узнать больше
Книги
Сайты
Группы
Конференции
Вакансии, связанные с Python
Читайте далее
Упражнения
Глава 20. Пи-Арт
Двумерная графика
Стандартная библиотека
PIL и Pillow
ImageMagick
Трехмерная графика
Трехмерная анимация
Графические пользовательские интерфейсы (GUI)
Диаграммы, графики и визуализация
Matplotlib
Seaborn
Bokeh
Игры
Аудио и музыка
Читайте далее
Упражнения
Глава 21. За работой
The Microsoft Office Suite
Выполняем бизнес-задачи
Обработка бизнес-данных
Извлечение, преобразование и загрузка
Валидация данных
Дополнительные источники информации
Пакеты для работы с бизнес-данными с открытым исходным кодом
Python в области финансов
Безопасность бизнес-данных
Карты
Форматы
Нарисуем карту на основе шейп-файла
Geopandas
Другие пакеты для работы с картами
Приложения и данные
Читайте далее
Упражнения
Глава 22. Py в науке
Математика и статистика в стандартной библиотеке
Математические функции
Работа с комплексными числами
Рассчитываем точное значение чисел с плавающей точкой с помощью модуля decimal
Выполняем вычисления для рациональных чисел с помощью модуля fractions
Используем Packed Sequences с помощью модуля array
Обрабатываем простую статистику с помощью модуля statistics
Перемножение матриц
Python для науки
NumPy
Создаем массив с помощью функции array()
Создаем массив с помощью функции arange()
Создаем массив с помощью функций zeros(), ones() и random()
Изменяем форму массива с помощью метода reshape()
Получаем элемент с помощью конструкции []
Математика массивов
Линейная алгебра
Библиотека SciPy
Библиотека SciKit
Pandas
Python и научные области
Читайте далее
Упражнения
Приложения
Приложение А. Аппаратное и программное обеспечение для начинающих программистов
Аппаратное обеспечение
Компьютеры пещерных людей
Электричество
Изобретения
Идеальный компьютер
Процессор
Память и кэш
Хранение
Ввод данных
Вывод данных
Относительное время доступа
Программное обеспечение
Вначале был бит
Машинный язык
Ассемблер
Высокоуровневые языки
Операционные системы
Виртуальные машины
Контейнеры
Распределенные вычисления и сети
Облако
Kubernetes
Приложение Б. Установка Python 3
Проверьте свою версию Python
Установка стандартной версии Python
macOS
Windows
Linux или Unix
Установка менеджера пакетов pip
Установка virtualenv
Другие способы работы с пакетами
Устанавливаем Anaconda
Приложение В. Нечто совершенно иное: async
Сопрограммы и циклы событий
Async против…
Асинхронные фреймворки и серверы
Приложение Г. Ответы к упражнениям
1. Python: с чем его едят
2. Типы данных, значения, переменные и имена
3. Числа
4. Выбираем с помощью if
5. Текстовые строки
6. Создаем циклы с помощью ключевых слов while и for
7. Кортежи и списки
8. Словари
9. Функции
10. Ой-ой-ой: объекты и классы
11. Модули, пакеты и программы
12. Обрабатываем данные
13. Календари и часы
14. Файлы и каталоги
15. Данные во времени: процессы и конкурентность
16. Данные в коробке: устойчивые хранилища
17. Данные в пространстве: сети
18. Распутываем Всемирную паутину
19. Быть питонщиком
20. Пи-Арт
21. За работой
22. Py в науке
Приложение Д. Вспомогательные таблицы
Приоритет операторов
Строковые методы
Изменение регистра
Поиск
Изменение
Форматирование
Тип строки
Атрибуты модуля string
Эпилог