Об авторе
Предисловие
Часть I. Введение
Глава 1. Python в вопросах и ответах
Почему программисты используют Python?
Является ли Python "языком сценариев"?
Все хорошо, но есть ли у него недостатки?
Кто в наше время использует Python?
Что можно делать с помощью Python?
Как осуществляется поддержка Python?
В чем сильные стороны Python?
Какими преимуществами обладает Python перед языком X?
В заключение
Закрепление пройденного
Глава 2. Как Python запускает программы
Введение в интерпретатор Python
Выполнение программы
Разновидности модели выполнения
В заключение
Закрепление пройденного
Глава 3. Как пользователь запускает программы
Интерактивный режим
Системная командная строка и файлы
Щелчок на ярлыке файла
Импортирование и перезагрузка модулей
Запуск модулей с помощью функции exec
Пользовательский интерфейс IDLE
Другие интегрированные среды разработки
Другие способы запуска
Какие способы следует использовать?
В заключение
Закрепление пройденного
Часть II. Типы и операции
Глава 4. Введение в типы объектов языка Python
Зачем нужны встроенные типы?
Числа
Строки
Списки
Словари
Кортежи
Файлы
Другие базовые типы
В заключение
Закрепление пройденного
Глава 5. Числа
Базовые числовые типы
Числа в действии
Другие числовые типы
Числовые расширения
В заключение
Закрепление пройденного
Глава 6. Интерлюдия о динамической типизации
Отсутствие инструкций объявления
Разделяемые ссылки
Динамическая типизация повсюду
В заключение
Закрепление пройденного
Ответы
Глава 7. Строки
Литералы строк
Строки в действии
Строковые методы
Выражения форматирования строк
Метод форматирования строк
Общие категории типов
В заключение
Закрепление пройденного
Глава 8. Списки и словари
Списки
Списки в действии
Словари
Словари в действии
В заключение
Закрепление пройденного
Глава 9. Кортежи, файлы и все остальное
Кортежи
Кортежи в действии
Файлы
Пересмотренный перечень категорий типов
Гибкость объектов
Ссылки и копии
Сравнивание, равенство и истина
Иерархии типов данных в языке Python
Другие типы в Python
Ловушки встроенных типов
В заключение
Закрепление пройденного
Часть III. Инструкции и синтаксис
Глава 10. Введение в инструкции языка Python
Структура программы на языке Python
История о двух if
Короткий пример: интерактивные циклы
В заключение
Закрепление пройденного
Глава 11. Присваивание, выражения и print
Инструкции присваивания
Инструкции выражений
Операция print
В заключение
Закрепление пройденного
Глава 12. Условная инструкция if и синтаксические правила
Условные инструкции if
Синтаксические правила языка Python
Проверка истинности
Трехместное выражение if/else
В заключение
Закрепление пройденного
Глава 13. Циклы while и for
Циклы while
break, continue, pass и else
Циклы for
Приемы программирования циклов
В заключение
Закрепление пройденного
Глава 14. Итерации и генераторы, часть 1
Итераторы: первое знакомство
Генераторы списков: первое знакомство
Новые итерируемые объекты в Python 3.0
Другие темы, связанные с итераторами
В заключение
Закрепление пройденного
Глава 15. Документация
Источники документации в языке Python
Типичные ошибки программирования
В заключение
Закрепление пройденного
Часть IV. Функции
Глава 16. Основы функций
Зачем нужны функции?
Создание функций
Первый пример: определения и вызовы
Второй пример: пересечение последовательностей
В заключение
Закрепление пройденного
Глава 17. Области видимости
Области видимости в языке Python
Инструкция global
Области видимости и вложенные функции
Инструкция nonlocal
В заключение
Закрепление пройденного
Глава 18. Аргументы
Передача аргументов
Специальные режимы сопоставления аргументов
Функция поиска минимума
Универсальные функции для работы с множествами
Имитация функции print в Python 3.0
В заключение
Закрепление пройденного
Глава 19. Расширенные возможности функций
Концепции проектирования функций
Рекурсивные функции
Функции - это объекты: атрибуты и аннотации
Анонимные функции: lambda
Отображение функций на последовательности: map
Средства функционального программирования: filter и reduce
В заключение
Закрепление пройденного
Глава 20. Итераторы и генераторы
Еще раз о генераторах списков: функциональные инструменты
Еще раз об итераторах: генераторы
Краткая сводка по синтаксису генераторов в 3.0
Хронометраж итерационных альтернатив
Типичные ошибки при работе с функциями
В заключение
Закрепление пройденного
Часть V. Модули
Глава 21. Модули: общая картина
Зачем нужны модули?
Архитектура программы на языке Python
Как работает импорт
Путь поиска модулей
В заключение
Закрепление пройденного
Глава 22. Основы программирования модулей
Создание модуля
Использование модулей
Пространства имен модулей
Повторная загрузка модулей
В заключение
Закрепление пройденного
Глава 23. Пакеты модулей
Основы операции импортирования пакетов
Пример импортирования пакета
Когда используется операция импортирования пакетов?
Импортирование относительно пакета
В заключение
Закрепление пройденного
Глава 24. Дополнительные возможности модулей
Сокрытие данных в модулях
Включение будущих возможностей языка
Смешанные режимы использования: __name__ и __main__
Изменение пути поиска модулей
Расширение as для инструкций import и from
Модули - это объекты: метапрограммы
Импортирование модулей по имени в виде строки
Транзитивная перезагрузка модулей
Концепции проектирования модулей
Типичные проблемы при работе с модулями
В заключение
Закрепление пройденного
Часть VI. Классы и ООП
Глава 25. ООП: общая картина
Зачем нужны классы?
ООП с высоты 30 000 футов
В заключение
Закрепление пройденного
Глава 26. Основы программирования классов
Классы генерируют множество экземпляров объектов
Классы адаптируются посредством наследования
Классы могут переопределять операторы языка Python
Самый простой в мире класс на языке Python
Классы и словари
В заключение
Закрепление пройденного
Глава 27. Более реалистичный пример
Шаг 1: создание экземпляров
Шаг 2: добавление методов, определяющих поведение
Шаг 3: перегрузка операторов
Шаг 4: адаптация поведения с помощью подклассов
Шаг 5: адаптация конструкторов
Шаг 6: использование инструментов интроспекции
Шаг 7 (последний): сохранение объектов в базе данных
Рекомендации на будущее
В заключение
Закрепление пройденного
Глава 28. Подробнее о программировании классов
Инструкция class
Методы
Наследование
Пространства имен: окончание истории
Еще раз о строках документирования
Классы и модули
В заключение
Закрепление пройденного
Глава 29. Перегрузка операторов
Доступ к элементам по индексу и извлечение срезов: __getitem__ и __setitem__
Итерации по индексам: __getitem__
Итераторы: __iter__ и __next__
Проверка на вхождение: __contains__, __iter__ и __getitem__
Обращения к атрибутам: __getattr__ и __setattr__
Строковое представление объектов: __repr__ и __str__
Правостороннее сложение и операция приращения: __radd__ и __iadd__
Операция вызова: __call__
Функциональные интерфейсы и программный код обратного вызова
Сравнивание: __lt__, __gt__ и другие
Проверка логического значения: __bool__ и __len__
В заключение
Закрепление пройденного