# Підручник з Python

Python — це потужна мова програмування, яка проста у вивченні. Він має ефективні структури даних високого рівня та простий, але ефективний підхід до об’єктно-орієнтованого програмування. Елегантний синтаксис і динамічна типізація Python разом з його інтерпретованим характером роблять його ідеальною мовою для створення сценаріїв і швидкої розробки додатків у багатьох сферах на більшості платформ.

Інтерпретатор Python і обширна стандартна бібліотека доступні у вихідному або двійковому вигляді для всіх основних платформ на веб-сайті Python https://www.python.org/ і можуть вільно поширюватися. Цей же сайт також містить дистрибутиви та вказівники на багато безкоштовних сторонніх модулів Python, програм і інструментів, а також додаткову документацію.

Інтерпретатор Python легко розширюється за допомогою нових функцій і типів даних, реалізованих у C або C++ (або інших мовах, які можна викликати з C). Python також підходить як мова розширення для настроюваних програм.

Цей підручник неформально знайомить читача з основними концепціями та функціями мови та системи Python. Вам допоможе мати під рукою інтерпретатор Python для практичного досвіду, але всі приклади є самодостатніми, тому підручник також можна читати офлайн.

Опис стандартних об’єктів і модулів див. Стандартна бібліотека Python. Довідник з мови Python дає більш формальне визначення мови. Щоб написати розширення на C або C++, прочитайте Розширення та вбудовування інтерпретатора Python і Довідковий посібник з API Python/C. Є також кілька книг, які детально описують Python.

Цей підручник не намагається бути вичерпним і охопити кожну окрему функцію чи навіть кожну функцію, що часто використовується. Натомість він представляє багато найбільш вартих уваги функцій Python і дасть вам гарне уявлення про смак і стиль мови. Прочитавши його, ви зможете читати та писати модулі та програми Python, а також будете готові дізнатися більше про різні модулі бібліотеки Python, описані в Стандартна бібліотека Python.

Глосарій також варто переглянути.

- 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. Text
    - 3.1.3. списки
  - 3.2. Перші кроки до програмування
- 4. Більше інструментів керування потоком
  - 4.1. `if` Інструкції
  - 4.2. `for` Заяви
  - 4.3. Функція `range()`
  - 4.4. `break` and `continue` Statements
  - 4.5. `else` Clauses on Loops
  - 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. Intermezzo: стиль кодування
- 5. Структури даних
  - 5.1. Більше про списки
    - 5.1.1. Використання списків як стеків
    - 5.1.2. Використання списків як черг
    - 5.1.3. Розуміння списку
    - 5.1.4. Розуміння вкладених списків
  - 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. Метод String 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. Raising and Handling Multiple Unrelated Exceptions
  - 8.10. Enriching Exceptions with Notes
- 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. Decimal Floating-Point Arithmetic
- 12. Віртуальні середовища та пакети
  - 12.1. вступ
  - 12.2. Створення віртуальних середовищ
  - 12.3. Керування пакетами за допомогою pip
- 13. Що тепер?
- 14. Інтерактивне редагування введення та заміна історії
  - 14.1. Доповнення вкладок і редагування історії
  - 14.2. Альтернативи інтерактивному інтерпретатору
- 15. Floating-Point Arithmetic: Issues and Limitations
  - 15.1. Помилка представлення
- 16. Додаток
  - 16.1. Інтерактивний режим
    - 16.1.1. Обробка помилок
    - 16.1.2. Виконувані скрипти Python
    - 16.1.3. Інтерактивний файл запуску
    - 16.1.4. Модулі налаштування