Прохоренок Н., Дронов В. Python 3. Самое необходимое. 2-е изд.

Python 3. Самое необходимое. 2-е изд.

Описан базовый синтаксис языка Python 3: типы данных, операторы, условия, циклы, регулярные выражения, встроенные функции, объектно-ориентированное программирование, обработка исключений, часто используемые модули стандартной библиотеки и установка дополнительных модулей. Даны основы SQLite, описан интерфейс доступа к базам данных SQLite и MySQL, в том числе посредством ODBC. Рассмотрена работа с изображениями с помощью библиотек Pillow и Wand, получение данных из Интернета и использование архивов различных форматов. Книга содержит более двухсот практических примеров, помогающих начать программировать на языке Python самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать книгу как удобный справочник.

Во втором издании описана актуальная версия Python — 3.6.4, добавлены описания утилиты pip, работы с данными в формате JSON, библиотеки Tkinter и разработки оконных приложений с ее помощью, реализации параллельного программирования и использования потоков для выполнения программного кода.

Требования к читателям: умение пользоваться компьютером. Язык Python идеален для читателей не имеющих представления о языках программирования!

См. также: "Python 3 и PyQt 5. Разработка приложений. 2 изд."
См. также: "HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. 5-е изд."

Оглавление книги Python 3. Самое необходимое. 2-е изд.

Введение

Глава 1. Первые шаги

1.1. Установка Python
    1.1.1. Установка нескольких интерпретаторов Python
    1.1.2. Запуск программы с помощью разных версий Python
1.2. Первая программа на Python
1.3. Структура программы
1.4. Комментарии
1.5. Дополнительные возможности IDLE
1.6. Вывод результатов работы программы
1.7. Ввод данных
1.8. Доступ к документации
1.9. Утилита pip: установка дополнительных библиотек

Глава 2. Переменные

2.1. Именование переменных
2.2. Типы данных
2.3. Присваивание значения переменным
2.4. Проверка типа данных
2.5. Преобразование типов данных
2.6. Удаление переменной

Глава 3. Операторы

3.1. Математические операторы
3.2. Двоичные операторы
3.3. Операторы для работы с последовательностями
3.4. Операторы присваивания
3.5. Приоритет выполнения операторов

Глава 4. Условные операторы и циклы

4.1. Операторы сравнения
4.2. Оператор ветвления if...else
4.3. Цикл for
4.4. Функции range() и enumerate()
4.5. Цикл while
4.6. Оператор continue: переход на следующую итерацию цикла
4.7. Оператор break: прерывание цикла

Глава 5. Числа

5.1. Встроенные функции и методы для работы с числами
5.2. Модуль math. Математические функции
5.3. Модуль random. Генерация случайных чисел

Глава 6. Строки и двоичные данные

6.1. Создание строки
6.2. Специальные символы
6.3. Операции над строками
6.4. Форматирование строк
6.5. Метод format()
    6.5.1. Форматируемые строки
6.6. Функции и методы для работы со строками
6.7. Настройка локали
6.8. Изменение регистра символов
6.9. Функции для работы с символами
6.10. Поиск и замена в строке
6.11. Проверка типа содержимого строки
6.12. Вычисление выражений, заданных в виде строк
6.13. Тип данных bytes
6.14. Тип данных bytearray
6.15. Преобразование объекта в последовательность байтов
6.16. Шифрование строк

Глава 7. Регулярные выражения

7.1. Синтаксис регулярных выражений
7.2. Поиск первого совпадения с шаблоном
7.3. Поиск всех совпадений с шаблоном
7.4. Замена в строке
7.5. Прочие функции и методы

Глава 8. Списки, кортежи, множества и диапазоны

8.1. Создание списка
8.2. Операции над списками
8.3. Многомерные списки
8.4. Перебор элементов списка
8.5. Генераторы списков и выражения-генераторы
8.6. Функции map(), zip(), filter() и reduce()
8.7. Добавление и удаление элементов списка
8.8. Поиск элемента в списке и получение сведений о значениях, входящих в список
8.9. Переворачивание и перемешивание списка
8.10. Выбор элементов случайным образом
8.11. Сортировка списка
8.12. Заполнение списка числами
8.13. Преобразование списка в строку
8.14. Кортежи
8.15. Множества
8.16. Диапазоны
8.17. Модуль itertools
    8.17.1. Генерирование неопределенного количества значений
    8.17.2. Генерирование комбинаций значений
    8.17.3. Фильтрация элементов последовательности
    8.17.4. Прочие функции

Глава 9. Словари

9.1. Создание словаря
9.2. Операции над словарями
9.3. Перебор элементов словаря
9.4. Методы для работы со словарями
9.5. Генераторы словарей

Глава 10. Работа с датой и временем

10.1. Получение текущих даты и времени
10.2. Форматирование даты и времени
10.3. Засыпание скрипта
10.4. Модуль datetime: манипуляции датой и временем
    10.4.1. Класс timedelta
    10.4.2. Класс date
    10.4.3. Класс time
    10.4.4. Класс datetime
10.5. Модуль calendar: вывод календаря
    10.5.1. Методы классов TextCalendar и LocaleTextCalendar
    10.5.2. Методы классов HTMLCalendar и LocaleHTMLCalendar
    10.5.3. Другие полезные функции
10.6. Измерение времени выполнения фрагментов кода

Глава 11. Пользовательские функции

11.1. Определение функции и ее вызов
11.2. Расположение определений функций
11.3. Необязательные параметры и сопоставление по ключам
11.4. Переменное число параметров в функции
11.5. Анонимные функции
11.6. Функции-генераторы
11.7. Декораторы функций
11.8. Рекурсия. Вычисление факториала
11.9. Глобальные и локальные переменные
11.10. Вложенные функции
11.11. Аннотации функций

Глава 12. Модули и пакеты

12.1. Инструкция import
12.2. Инструкция from
12.3. Пути поиска модулей
12.4. Повторная загрузка модулей
12.5. Пакеты

Глава 13. Объектно-ориентированное программирование

13.1. Определение класса и создание экземпляра класса
13.2. Методы __init__() и __del__()
13.3. Наследование
13.4. Множественное наследование
    13.4.1. Примеси и их использование
13.5. Специальные методы
13.6. Перегрузка операторов
13.7. Статические методы и методы класса
13.8. Абстрактные методы
13.9. Ограничение доступа к идентификаторам внутри класса
13.10. Свойства класса
13.11. Декораторы классов

Глава 14. Обработка исключений

14.1. Инструкция try...except...else...finally
14.2. Инструкция with...as
14.3. Классы встроенных исключений
14.4. Пользовательские исключения

Глава 15. Итераторы, контейнеры и перечисления

15.1. Итераторы
15.2. Контейнеры
    15.2.1. Контейнеры-последовательности
    15.2.2. Контейнеры-словари
15.3. Перечисления

Глава 16. Работа с файлами и каталогами

16.1. Открытие файла
16.2. Методы для работы с файлами
16.3. Доступ к файлам с помощью модуля os
16.4. Классы StringIO и BytesIO
16.5. Права доступа к файлам и каталогам
16.6. Функции для манипулирования файлами
16.7. Преобразование пути к файлу или каталогу
16.8. Перенаправление ввода/вывода
16.9. Сохранение объектов в файл
16.10. Функции для работы с каталогами
    16.10.1. Функция scandir()
16.11. Исключения, возбуждаемые файловыми операциями

Глава 17. Основы SQLite

17.1. Создание базы данных
17.2. Создание таблицы
17.3. Вставка записей
17.4. Обновление и удаление записей
17.5. Изменение структуры таблицы
17.6. Выбор записей
17.7. Выбор записей из нескольких таблиц
17.8. Условия в инструкциях WHERE и HAVING
17.9. Индексы
17.10. Вложенные запросы
17.11. Транзакции
17.12. Удаление таблицы и базы данных

Глава 18. Доступ из Python к базам данных SQLite

18.1. Создание и открытие базы данных
18.2. Выполнение запросов
18.3. Обработка результата запроса
18.4. Управление транзакциями
18.5. Указание пользовательской сортировки
18.6. Поиск без учета регистра символов
18.7. Создание агрегатных функций
18.8. Преобразование типов данных
18.9. Сохранение в таблице даты и времени
18.10. Обработка исключений
18.11. Трассировка выполняемых запросов

Глава 19. Доступ из Python к базам данных MySQL

19.1. Библиотека MySQLClient
    19.1.1. Подключение к базе данных
    19.1.2. Выполнение запросов
    19.1.3. Обработка результата запроса
19.2. Библиотека PyODBC
    19.2.1. Подключение к базе данных
    19.2.2. Выполнение запросов
    19.2.3. Обработка результата запроса

Глава 20. Работа с графикой

20.1. Загрузка готового изображения
20.2. Создание нового изображения
20.3. Получение информации об изображении
20.4. Манипулирование изображением
20.5. Рисование линий и фигур
20.6. Библиотека Wand
20.7. Вывод текста
20.8. Создание скриншотов

Глава 21. Интернет-программирование

21.1. Разбор URL-адреса
21.2. Кодирование и декодирование строки запроса
21.3. Преобразование относительного URL-адреса в абсолютный
21.4. Разбор HTML-эквивалентов
21.5. Обмен данными по протоколу HTTP
21.6. Обмен данными с помощью модуля urllib.request
21.7. Определение кодировки
21.8. Работа с данными в формате JSON

Глава 22. Библиотека Tkinter. Основы разработки оконных приложений

22.1. Введение в Tkinter
    22.1.1. Первое приложение на Tkinter
    22.1.2. Разбор кода первого приложения
22.2. Связывание компонентов с данными. Метапеременные
22.3. Обработка событий
    22.3.1. Привязка обработчиков к событиям
    22.3.2. События и их наименования
    22.3.3. Дополнительные сведения о событии. Класс Event
    22.3.4. Виртуальные события
    22.3.5. Генерирование событий
    22.3.6. Перехват событий
22.4. Указание опций у компонентов
22.5. Размещение компонентов в контейнерах. Диспетчеры компоновки
    22.5.1. Pack: выстраивание компонентов вдоль сторон контейнера
    22.5.2. Place: фиксированное расположение компонентов
    22.5.3. Grid: выстраивание компонентов по сетке
    22.5.4. Использование вложенных контейнеров
    22.5.5. Размещение компонентов непосредственно в окне
    22.5.6. Адаптивный интерфейс и его реализация
22.6. Работа с окнами
    22.6.1. Управление окнами
    22.6.2. Получение сведений об экранной подсистеме
    22.6.3. Вывод вторичных окон
        Вывод обычных вторичных окон
        Вывод модальных вторичных окон
22.7. Управление жизненным циклом приложения
22.8. Взаимодействие с операционной системой
22.9. Обработка ошибок

Глава 23. Библиотека Tkinter. Компоненты и вспомогательные классы

23.1. Стилизуемые компоненты
    23.1.1. Опции и методы, поддерживаемые всеми стилизуемыми компонентами
    23.1.2. Компонент Frame: панель
    23.1.3. Компонент Button: кнопка
    23.1.4. Компонент Entry: поле ввода
        Задание шрифта
        Проверка введенного значения на правильность
    23.1.5. Компонент Label: надпись
    23.1.6. Компонент Checkbutton: флажок
    23.1.7. Компонент Radiobutton: переключатель
    23.1.8. Компонент Combobox: раскрывающийся список
    23.1.9. Компонент Scale: регулятор
    23.1.10. Компонент LabelFrame: панель с заголовком
    23.1.11. Компонент Notebook: панель с вкладками
    23.1.12. Компонент Progressbar: индикатор процесса
    23.1.13. Компонент Sizegrip: захват для изменения размеров окна
    23.1.14. Компонент Treeview: иерархический список
        Реализация прокрутки в компоненте Treeview. Компонент Scrollbar
    23.1.15. Настройка внешнего вида стилизуемых компонентов
        Использование тем
        Указание стилей
        Стили состояний
23.2. Нестилизуемые компоненты
    23.2.1. Компонент Listbox: список
        Реализация прокрутки в компоненте Listbox
    23.2.2. Компонент Spinbox: поле ввода со счетчиком
    23.2.3. Компонент PanedWindow: панель с разделителями
    23.2.4. Компонент Menu: меню
        Опции самого компонента         Menu
        Опции пункта меню
        Методы компонента Menu
        Создание главного меню
        Создание контекстного меню
        Компонент Menubutton: кнопка с меню
23.3. Обработка горячих клавиш
23.4. Стандартные диалоговые окна
    23.4.1. Вывод окон-сообщений
    23.4.2. Вывод диалоговых окон открытия и сохранения файла

Глава 24. Параллельное программирование

24.1. Высокоуровневые инструменты
    24.1.1. Выполнение параллельных задач
    24.1.2. Планировщик заданий
24.2. Многопоточное программирование
    24.2.1. Класс Thread: поток
    24.2.2. Локальные данные потока
    24.2.3. Использование блокировок
    24.2.4. Кондиции
    24.2.5. События потоков
    24.2.6. Барьеры
    24.2.7. Потоковый таймер
    24.2.8. Служебные функции
24.3. Очередь

Глава 25. Работа с архивами

25.1. Сжатие и распаковка по алгоритму GZIP
25.2. Сжатие и распаковка по алгоритму BZIP2
25.3. Сжатие и распаковка по алгоритму LZMA
25.4. Работа с архивами ZIP
25.5. Работа с архивами TAR

Заключение

 
Поиск по сайту в Яндексе