# Руководство по 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. Внутрипакетные ссылки
    - 6.4.3. Пакеты в нескольких каталогах
- 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. Модули настройки