Предисловие
Часть I. Введение
Глава 1. Python в вопросах и ответах
Почему программисты используют Python?
Является ли Python "языком сценариев"?
Все хорошо, но есть ли у него недостатки?
Кто в наше время использует Python?
Что можно делать с помощью Python?
В чем сильные стороны Python?
Какими преимуществами обладает Python перед языком X?
В заключение
Закрепление пройденного
Глава 2. Как Python запускает программы
Введение в интерпретатор Python
Выполнение программы
Разновидности модели выполнения
В заключение
Закрепление пройденного
Глава 3. Как пользователь запускает программы
Интерактивный режим
Системная командная строка и файлы
Щелчок на ярлыке файла
Импортирование и перезагрузка модулей
Пользовательский интерфейс IDLE
Другие интегрированные среды разработки
Встраивание вызовов
Фиксированные исполняемые двоичные файлы
Возможность запуска программ из текстового редактора
Прочие возможности запуска
Будущие возможности
Какие способы следует использовать?
В заключение
Закрепление пройденного
Часть II. Типы и операции
Глава 4. Введение в типы объектов языка Python
Зачем нужны встроенные типы?
Числа
Строки
Списки
Словари
Кортежи
Файлы
Другие базовые типы
В заключение
Закрепление пройденного
Глава 5. Числа
Числовые типы в Python
Операторы выражений
Числа в действии
Другие числовые типы
В заключение
Закрепление пройденного
Глава 6. Интерлюдия о динамической типизации
Отсутствие инструкций объявления
Разделяемые ссылки
Динамическая типизация повсюду
В заключение
Закрепление пройденного
Глава 7. Строки
Литералы строк
Строки в действии
Форматирование строки
Строковые методы
Общие категории типов
В заключение
Закрепление пройденного
Глава 8. Списки и словари
Списки
Списки в действии
Словари
Словари в действии
В заключение
Закрепление пройденного
Глава 9. Кортежи, файлы и все остальное
Кортежи
Кортежи в действии
Файлы
Пересмотренный перечень категорий типов
Гибкость объектов
Сравнения, равенство и истина
Иерархии типов данных в языке Python
Другие типы в Python
Ловушки встроенных типов
В заключение
Закрепление пройденного
Часть III. Инструкции и синтаксис
Глава 10. Введение в инструкции языка Python
Структура программы на языке Python
История о двух if
Короткий пример: интерактивные циклы
В заключение
Закрепление пройденного
Глава 11. Присваивание, выражения и print
Инструкции присваивания
Инструкции выражений
Инструкция print
В заключение
Закрепление пройденного
Глава 12. Условная инструкция if
Условные инструкции if
Синтаксические правила языка Python
Проверка истинности
В заключение
Закрепление пройденного
Глава 13. Циклы while и for
Циклы while
break, continue, pass и else
Циклы for
Итераторы: первое знакомство
Приемы программирования циклов
Генераторы списков: первое знакомство
В заключение
Закрепление пройденного
Глава 14. Документация
Источники документации в языке Python
Типичные ошибки программирования
В заключение
Закрепление пройденного
Часть IV. Функции
Глава 15. Основы функций
Зачем нужны функции?
Создание функций
Первый пример: определения и вызовы
Второй пример: пересечение последовательностей
В заключение
Закрепление пройденного
Глава 16. Области видимости и аргументы
Правила видимости
Инструкция global
Области видимости и вложенные функции
Передача аргументов
Специальные режимы сопоставления аргументов
В заключение
Закрепление пройденного
Глава 17. Расширенные возможности функций
Анонимные функции: lambda
Применение функций к аргументам
Отображение функций на последовательности: map
Средства функционального программирования: filter и reduce
Еще раз о генераторах списков: отображения
Еще раз об итераторах: генераторы
Хронометраж итерационных альтернатив
Концепции проектирования функций
Типичные ошибки при работе с функциями
В заключение
Закрепление пройденного
Часть V. Модули
Глава 18. Модули: общая картина
Зачем нужны модули?
Архитектура программы на языке Python
Как работает импорт
В заключение
Закрепление пройденного
Глава 19. Основы программирования модулей
Создание модуля
Использование модулей
Пространства имен модулей
Повторная загрузка модулей
В заключение
Закрепление пройденного
Глава 20. Пакеты модулей
Основы операции импортирования пакетов
Пример импортирования пакета
Зачем используется операция импортирования пакетов?
В заключение
Закрепление пройденного
Глава 21. Дополнительные возможности модулей
Сокрытие данных в модулях
Включение будущих возможностей языка
Смешанные режимы использования: __name__ и __main__
Изменение пути поиска модулей
Расширение import as
Синтаксис относительного импорта
Концепции проектирования модулей
Типичные проблемы при работе с модулями
В заключение
Закрепление пройденного
Часть VI. Классы и ООП
Глава 22. ООП: общая картина
Зачем нужны классы?
ООП с высоты 30 000 футов
В заключение
Закрепление пройденного
Глава 23. Основы программирования классов
Классы генерируют множество экземпляров объектов
Классы адаптируются посредством наследования
Классы могут переопределять операторы языка Python
Самый простой в мире класс на языке Python
В заключение
Закрепление пройденного
Глава 24. Подробнее о программировании классов
Инструкция class
Методы
Наследование
Перегрузка операторов
Пространства имен: окончание истории
Более реалистичный пример
В заключение
Закрепление пройденного
Глава 25. Шаблоны проектирования с классами
Python и ООП
Классы как записи
ООП и наследование: взаимосвязи типа "является"
ООП и композиция: взаимосвязи типа "имеет"
ООП и делегирование
Множественное наследование
Классы - это объекты: фабрики универсальных объектов
Методы - это объекты: связанные и несвязанные методы
Еще раз о строках документирования
Классы и модули
В заключение
Закрепление пройденного
Глава 26. Дополнительные возможности классов
Расширение встроенных типов
Псевдочастные атрибуты класса
Классы нового стиля
Статические методы и методы класса
Декораторы функций
Типичные проблемы при работе с классами
В заключение
Закрепление пройденного
Часть VII. Исключения и инструменты
Глава 27. Основы исключений
Зачем нужны исключения?
Обработка исключений: краткий обзор
Инструкция try/except/else
Инструкция try/finally
Объединенная инструкция try/except/finally
Инструкция raise
Инструкция assert
Контекстные менеджеры with/as
В заключение
Закрепление пройденного
Глава 28. Объекты исключений
Исключения на основе строк
Исключения на основе классов
Общие формы инструкции raise
В заключение
Закрепление пройденного
Глава 29. Использование исключений
Вложенные обработчики исключений
Идиомы исключений
Советы по применению исключений
Типичные проблемы при работе с исключениями
Заключение по основам языка
В заключение
Закрепление пройденного
Часть VIII. Приложения
Приложение A. Установка и настройка
Приложение B. Решения упражнений
Алфавитный указатель