Руководство по Python
*********************

Совет:

  Это руководство предназначено для *программистов*, которые впервые
  знакомятся с языком Python, а **не** для *новичков*, которые только
  начинают программировать.

Python — это простой в изучении и мощный язык программирования. Он
обладает эффективными высокоуровневыми структурами данных и простым,
но эффективным подходом к объектно-ориентированному программированию.
Элегантный синтаксис и динамическая типизация, вместе с
интерпретируемой природой Python, делают его идеальным языком для
написания скриптов и быстрой разработки приложений во многих областях
на большинстве платформ.

Интерпретатор Python и обширная стандартная библиотека доступны
свободно — как в исходных текстах, так и в виде бинарных сборок — для
всех основных платформ на сайте Python: https://www.python.org/. Их
можно свободно распространять. На этом же сайте размещены дистрибутивы
и ссылки на множество сторонних свободных модулей, программ и
инструментов для Python, а также дополнительная документация.

Интерпретатор Python легко расширяется новыми функциями и типами
данных, реализованными на C или C++ (или на других языках, вызываемых
из C). Python также подходит в качестве языка расширения для
настраиваемых приложений.

Это руководство неформально знакомит читателя с основными концепциями
и возможностями языка и системы Python. Предполагается, что вы уже
обладаете базовыми знаниями в программировании. Полезно иметь под
рукой интерпретатор Python для практики, однако все примеры
самодостаточны, поэтому руководство можно читать офлайн.

Описание стандартных объектов и модулей приведено в The Python
Standard Library. Раздел Справочник по языку Python содержит более
формальное определение языка. Чтобы писать расширения на C или C++,
прочтите Extending and Embedding the Python Interpreter и Python/C API
reference manual. Также есть несколько книг для более глубокого
изучения Python.

Это руководство не стремится быть исчерпывающим и охватить все
особенности языка — даже самые распространённые. Вместо этого оно
знакомит с наиболее важными возможностями Python и даёт общее
представление о стиле и духе языка. После его прочтения вы сможете
писать и понимать модули и программы на Python и будете готовы узнать
больше о различных модулях стандартной библиотеки, описанных в разделе
The Python Standard Library.

Также стоит ознакомиться с Глоссарий.

* 1. Пробуждая интерес

* 2. Использование интерпретатора Python

  * 2.1. Запуск интерпретатора

    * 2.1.1. Передача аргументов

    * 2.1.2. Интерактивный режим

  * 2.2. Интерпретатор и его окружение

    * 2.2.1. Кодирование исходного кода

* 3. Неформальное введение в Python

  * 3.1. Использование Python как калькулятор

    * 3.1.1. Числа

    * 3.1.2. Текст

    * 3.1.3. Списки

  * 3.2. Первые шаги в программировании

* 4. Больше инструментов управления потоком выполнения программы

  * 4.1. Инструкция "if"

  * 4.2. Инструкция "for"

  * 4.3. Функция "range()"

  * 4.4. Инструкции "break" и "continue"

  * 4.5. "else" ветви в циклах

  * 4.6. Инструкция "pass"

  * 4.7. Инструкция "match"

  * 4.8. Определение функций

  * 4.9. Подробнее об определении функций

    * 4.9.1. Значения аргументов по умолчанию

    * 4.9.2. Именованные аргументы

    * 4.9.3. Специальные параметры

      * 4.9.3.1. Позиционные или именованные аргументы

      * 4.9.3.2. Только позиционные параметры

      * 4.9.3.3. Только именованные аргументы

      * 4.9.3.4. Примеры функций

      * 4.9.3.5. Краткое повторение

    * 4.9.4. Произвольные списки аргументов

    * 4.9.5. Распаковка списков аргументов

    * 4.9.6. Лямбда-выражения

    * 4.9.7. Строки документации

    * 4.9.8. Аннотации функций

  * 4.10. Отступление: стиль написания программ

* 5. Структуры данных

  * 5.1. Подробнее о списках

    * 5.1.1. Использование списка в качестве стека

    * 5.1.2. Использование списка в качестве очереди

    * 5.1.3. Списковые включения

    * 5.1.4. Вложенные списковые включения

    * 5.1.5. Распаковка в списках и списковых включениях

  * 5.2. Инструкция "del"

  * 5.3. Кортежи и последовательности

  * 5.4. Множества

  * 5.5. Словари

  * 5.6. Техники перебора

  * 5.7. Больше о условиях

  * 5.8. Сравнение последовательностей и других типов

* 6. Модули

  * 6.1. Подробнее о модулях

    * 6.1.1. Выполнение модулей как скриптов

    * 6.1.2. Путь поиска модулей

    * 6.1.3. «Скомпилированные» файлы Python

  * 6.2. Стандартные модули

  * 6.3. Функция "dir()"

  * 6.4. Пакеты

    * 6.4.1. Импорт * из пакета

    * 6.4.2. Внутрипакетные ссылки

* 7. Ввод и вывод

  * 7.1. Продвинутое форматирование вывода

    * 7.1.1. Форматированные строковые литералы

    * 7.1.2. Строковой метод format()

    * 7.1.3. Ручное форматирование строк

    * 7.1.4. Старое форматирование строк

  * 7.2. Чтение и запись файлов

    * 7.2.1. Методы файловых объектов

    * 7.2.2. Сохранение структурированных данных с "json"

* 8. Ошибки и исключения

  * 8.1. Синтаксические ошибки

  * 8.2. Исключения

  * 8.3. Обработка исключений

  * 8.4. Выбрасывание исключений

  * 8.5. Цепочка исключений

  * 8.6. Пользовательские исключения

  * 8.7. Определение действий по очистке

  * 8.8. Предопределённые действие по очистке

  * 8.9. Выбрасывание и обработка нескольких несвязанных исключений

  * 8.10. Дополнение исключений заметками

* 9. Классы

  * 9.1. Несколько слов об именах и объектах

  * 9.2. Области видимости и пространства имён в Python

    * 9.2.1. Пример областей видимости и пространств имён

  * 9.3. Первый взгляд на классы

    * 9.3.1. Синтаксис определения класса

    * 9.3.2. Объекты классов

    * 9.3.3. Объекты экземпляров

    * 9.3.4. Объекта методов

    * 9.3.5. Переменные класса и экземпляра

  * 9.4. Полезные замечания

  * 9.5. Наследование

    * 9.5.1. Множественное наследование

  * 9.6. Закрытые переменные

  * 9.7. Разное и полезное

  * 9.8. Итераторы

  * 9.9. Генераторы

  * 9.10. Генераторные выражения

* 10. Краткий обзор стандартной библиотеки

  * 10.1. Интерфейс операционной системы

  * 10.2. Шаблоны файлов

  * 10.3. Аргументы командной строки

  * 10.4. Перенаправление вывода ошибок и завершение программы

  * 10.5. Сопоставление строк с шаблонами

  * 10.6. Математика

  * 10.7. Доступ в интернет

  * 10.8. Дата и время

  * 10.9. Сжатие данных

  * 10.10. Измерение производительности

  * 10.11. Контроль качества

  * 10.12. Батарейки прилагаются

* 11. Краткий обзор стандартной библиотеки — часть II

  * 11.1. Форматирование вывода

  * 11.2. Шаблоны

  * 11.3. Работа с записями бинарных данных

  * 11.4. Многопоточность

  * 11.5. Логирование

  * 11.6. Слабые ссылки

  * 11.7. Инструменты для работы со списками

  * 11.8. Десятичная арифметика с плавающей точкой

* 12. Виртуальные окружения и пакеты

  * 12.1. Введение

  * 12.2. Создание виртуального окружения

  * 12.3. Управление пакетами с помощью pip

* 13. Что дальше?

* 14. Интерактивное редактирование ввода и подстановка истории

  * 14.1. Автодополнение и редактирование истории

  * 14.2. Альтернативы интерактивному интерпретатору

* 15. Арифметика с плавающей точкой: проблемы и ограничения

  * 15.1. Ошибка представления

* 16. Приложение

  * 16.1. Интерактивный режим

    * 16.1.1. Обработка ошибок

    * 16.1.2. Исполняемые Python скрипты

    * 16.1.3. Файл интерактивного запуска

    * 16.1.4. Модули настройки
