2-е изд., переработанное и дополненное. — Санкт-Петербург: БХВ-Петербург, 2021. — 607 с. — (Самое необходимое). — ISBN 978-5-9775-3994-4.
Описан базовый синтаксис языка Python 3: типы данных, операторы, условия, циклы, регулярные выражения, встроенные функции, объектно-ориентированное программирование, обработка исключений, часто используемые модули стандартной библиотеки и установка дополнительных модулей. Даны основы SQLite, описан интерфейс доступа к базам данных SQLite и MySQL, в том числе посредством ODBC. Рассмотрена работа с изображениями с помощью библиотек Pillow и Wand, получение данных из Интернета и использование архивов различных форматов. Книга содержит более двухсот практических примеров, помогающих начать программировать на языке Python самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать книгу как удобный справочник.
Во втором издании описана актуальная версия Python – 3.6.4, добавлены описания утилиты pip, работы с данными в формате JSON, библиотеки Tkinter и разработки оконных приложений с ее помощью, реализации параллельного программирования и использования потоков для выполнения программного кода.
Электронное приложение-архив, доступное на сайте издательства, содержит листинги описанных в книге примеров.
ВведениеПервые шагиУстановка Python
Установка нескольких интерпретаторов Python
Запуск программы с помощью разных версий Python
Первая программа на Python
Структура программы
Комментарии
Дополнительные возможности IDLE
Вывод результатов работы программы
Ввод данных
Доступ к документации
Утилита pip: установка дополнительных библиотек
ПеременныеИменование переменных
Типы данных
Присваивание значения переменным
Проверка типа данных
Преобразование типов данных
Удаление переменной
ОператорыМатематические операторы
Двоичные операторы
Операторы для работы с последовательностями
Операторы присваивания
Приоритет выполнения операторов
Условные операторы и циклыОператоры сравнения
Оператор ветвления
if … elseЦикл for
Функции
range() и
enumerate()Цикл
whileОператор
continue: переход на следующую итерацию цикла
Оператор
break: прерывание цикла
ЧислаВстроенные функции и методы для работы с числами
Модуль
math. Математические функции
Модуль
random. Генерация случайных чисел
Строки и двоичные данныеСоздание строки
Специальные символы
Операции над строками
Форматирование строк
Метод
format()Форматируемые строки
Функции и методы для работы со строками
Настройка локали
Изменение регистра символов
Функции для работы с символами
Поиск и замена в строке
Проверка типа содержимого строки
Вычисление выражений, заданных в виде строк
Тип данных
bytesТип данных
bytearrayПреобразование объекта в последовательность байтов
Шифрование строк
Регулярные выраженияСинтаксис регулярных выражений
Поиск первого совпадения с шаблоном
Поиск всех совпадений с шаблоном
Замена в строке
Прочие функции и методы
Списки, кортежи, множества и диапазоныСоздание списка
Операции над списками
Многомерные списки
Перебор элементов списка
Генераторы списков и выражения-генераторы
Функции
map(), ZIP(), filter() и
reducedДобавление и удаление элементов списка
Поиск элемента в списке и получение сведений о значениях, входящих в список
Переворачивание и перемешивание списка
Выбор элементов случайным образом
Сортировка списка
Заполнение списка числами
Преобразование списка в строку
Кортежи
Множества
Диапазоны
Модуль
itertoolsГенерирование неопределенного количества значений
Генерирование комбинаций значений
Фильтрация элементов последовательности
Прочие функции
СловариСоздание словаря
Операции над словарями
Перебор элементов словаря
Методы для работы со словарями
Генераторы словарей
Работа с датой и временемПолучение текущих даты и времени
Форматирование даты и времени
«Засыпание» скрипта
Модуль
datetime: манипуляции датой и временем
Класс
timedeltaКласс
dateКласс
timeКласс
datetimeМодуль
calendar, вывод календаря
Методы классов
TextCalendar и
LocaleTextCalendarМетоды классов
HTMLCalendar и
LocaleHTMLCaiendarДругие полезные функции
Измерение времени выполнения фрагментов кода
Пользовательские функцииОпределение функции и ее вызов
Расположение определений функций
Необязательные параметры и сопоставление по ключам
Переменное число параметров в функции
Анонимные функции
Функции-генераторы
Декораторы функций
Рекурсия. Вычисление факториала
Глобальные и локальные переменные
Вложенные функции
Аннотации функций
Модули и пакетыИнструкция
importИнструкция
fromПути поиска модулей
Повторная загрузка модулей
Пакеты
Объектно-ориентированное программированиеОпределение класса и создание экземпляра класса
Методы
__init__() и
__del__()Наследование
Множественное наследование
Примеси и их использование
Специальные методы
Перегрузка операторов
Статические методы и методы класса
Абстрактные методы
Ограничение доступа к идентификаторам внутри класса
Свойства класса
Декораторы классов
Обработка исключенийИнструкция
try … except … else … finallyИнструкция
with … asКлассы встроенных исключений
Пользовательские исключения
Итераторы, контейнеры и перечисленияИтераторы
Контейнеры
Контейнеры-последовательности
Контейнеры-словари
Перечисления
Работа с файлами и каталогамиОткрытие файла
Методы для работы с файлами
Доступ к файлам с помощью модуля
osКлассы
StringIO и
BytesIOПрава доступа к файлам и каталогам
Функции для манипулирования файлами
Преобразование пути к файлу или каталогу
Перенаправление ввода/вывода
Сохранение объектов в файл
Функции для работы с каталогами
Функция
scandir()Исключения, возбуждаемые файловыми операциями
Основы SQLiteСоздание базы данных
Создание таблицы
Вставка записей
Обновление и удаление записей
Изменение структуры таблицы
Выбор записей
Выбор записей из нескольких таблиц
Условия в инструкциях
WHERE и
НАVINGИндексы
Вложенные запросы
Транзакции
Удаление таблицы и базы данных
Доступ из Python к базам данных SQLiteСоздание и открытие базы данных
Выполнение запросов
Обработка результата запроса
Управление транзакциями
Указание пользовательской сортировки
Поиск без учета регистра символов
Создание агрегатных функций
Преобразование типов данных
Сохранение в таблице даты и времени
Обработка исключений
Трассировка выполняемых запросов
Доступ из Python к базам данных MySQLБиблиотека
MySQLClientПодключение к базе данных
Выполнение запросов
Обработка результата запроса
Библиотека
PyODBCПодключение к базе данных
Выполнение запросов
Обработка результата запроса
Работа с графикойЗагрузка готового изображения
Создание нового изображения
Получение информации об изображении
Манипулирование изображением
Рисование линий и фигур
Библиотека
WandВывод текста
Создание скриншотов
Интернет-программированиеРазбор URL-адреса
Кодирование и декодирование строки запроса
Преобразование относительного URL-адреса в абсолютный
Разбор HTML-эквивалентов
Обмен данными по протоколу HTTP
Обмен данными с помощью модуля
urllib.requestОпределение кодировки
Работа с данными в формате JSON
Библиотека Tkinter. Основы разработки оконных приложенийВведение в
TkinterПервое приложение на
TkinterРазбор кода первого приложения
Связывание компонентов с данными. Метапеременные
Обработка событий
Привязка обработчиков к событиям
События и их наименования
Дополнительные сведения о событии. Класс
EventВиртуальные события
Генерирование событий
Перехват событий
Указание опций у компонентов
Размещение компонентов в контейнерах. Диспетчеры компоновки
Pack: выстраивание компонентов вдоль сторон контейнера
Place: фиксированное расположение компонентов
Grid: выстраивание компонентов по сетке
Использование вложенных контейнеров
Размещение компонентов непосредственно в окне
Адаптивный интерфейс и его реализация
Работа с окнами
Управление окнами
Получение сведений об экранной подсистеме
Вывод вторичных окон
Вывод обычных вторичных окон
Вывод модальных вторичных окон
Управление жизненным циклом приложения
Взаимодействие с операционной системой
Обработка ошибок
Библиотека Tkinter. Компоненты и вспомогательные классыСтилизуемые компоненты
Опции и методы, поддерживаемые всеми стилизуемыми компонентами
Компонент
Frame: панель
Компонент
Button: кнопка
Компонент
Entry: поле ввода
Задание шрифта
Проверка введенного значения на правильность
Компонент
Label: надпись
Компонент
Checkbutton: флажок
Компонент
Radiobutton: переключатель
Компонент
Combobox: раскрывающийся список
Компонент
Scale: регулятор
Компонент
LabelFrame: панель с заголовком
Компонент
Notebook: панель с вкладками
Компонент
Progressbar: индикатор процесса
Компонент
Sizegrip: захват для изменения размеров окна
Компонент
Treeview: иерархический список
Реализация прокрутки в компоненте
Treeview. Компонент
ScrollbarНастройка внешнего вида стилизуемых компонентов
Использование тем
Указание стилей
Стили состояний
Нестилизуемые компоненты
Компонент
Listbox: список
Реализация прокрутки в компоненте
ListboxКомпонент
Spinbox: поле ввода со счетчиком
Компонент
PanedWindow: панель с разделителями
Компонент
Menu, меню
Опции самого компонента
MenuОпции пункта меню
Методы компонента
MenuСоздание главного меню
Создание контекстного меню
Компонент
Menubutton: кнопка с меню
Обработка «горячих клавиш»
Стандартные диалоговые окна
Вывод окон-сообщений
Вывод диалоговых окон открытия и сохранения файла
Параллельное программированиеВысокоуровневые инструменты
Выполнение параллельных задач
Планировщик заданий
Многопоточное программирование
Класс
Thread: поток
Локальные данные потока
Использование блокировок
Кондиции
События потоков
Барьеры
Потоковый таймер
Служебные функции
Очередь
Работа с архивамиСжатие и распаковка по алгоритму GZIP
Сжатие и распаковка по алгоритму BZIP2
Сжатие и распаковка по алгоритму LZMA
Работа с архивами ZIP
Работа с архивами TAR
ЗаключениеПриложение. Описание электронного архиваПредметный указатель