Языки программирования

Учебник Python для начинающих

78 уроков · 12 разделов · бесплатно, без регистрации

Популярный язык с простым синтаксисом — отличная точка входа в программирование. Разберём переменные, условия, циклы, функции и работу со структурами данных.

Курс «Python» состоит из 12 разделов и 78 уроков: Введение в Python, Управление потоком выполнения в Python, Функции в Python, Типы данных, ООП, Работа с файлами в Python, Исключения в Python, Полезные модули стандартной библиотеки, Асинхронность и параллелизм, Продвинутый Python, Параллелизм в Python и Для продвинутых. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Введение в Python

    1. Начинаем изучать Python
    2. Ключевые слова и идентификаторы в Python
    3. Инструкции, отступы и комментарии в Python
    4. Переменные, константы и литералы в Python
    5. Типы данных в Python
    6. Операторы в Python
    7. Числа и математические функции в Python
    8. Преобразование и приведение типов в Python
    9. Ввод, вывод и импорт в Python
    10. Пространство имен и область видимости в Python
  2. 2 Управление потоком выполнения в Python

    1. Условный оператор if...else в Python
    2. Цикл for в Python
    3. Цикл while в Python
    4. Инструкции break и continue в Python

      break и continue в Python: прерывание цикла, пропуск итерации, поведение во вложенных циклах, else у цикла, частые ошибки.

    5. Инструкция pass в Python

      Инструкция pass в Python: пустой оператор-заполнитель, применение в функциях, классах, условиях и циклах, отличие от continue.

  3. 3 Функции в Python

    1. Функции в Python
    2. Аргументы функции в Python
    3. Глобальные, локальные и нелокальные переменные в Python
    4. Анонимные функции в Python
    5. Ключевое слово global в Python
    6. Модули в Python
    7. Пакеты в Python

      Пакеты Python: структура директорий, файл __init__.py, три способа импорта, относительные импорты, sys.path и частые ошибки.

  4. 4 Типы данных

    1. Числа в Python
    2. Строки в Python
    3. Списки в Python
    4. Словари в Python
    5. Кортежи в Python
    6. Множества в Python
  5. 5 ООП

    1. Объектно-ориентированное программирование в Python
    2. Объекты и классы в Python
    3. Наследование в Python
    4. Множественное наследование в Python
    5. Перегрузка операторов в Python
  6. 6 Работа с файлами в Python

    1. Открытие файлов: функция open() и режимы

      Функция open() в Python: режимы r, w, a, b, параметр encoding, чтение и запись файлов, почему важно закрывать файл.

    2. Чтение и запись текстовых файлов

      Чтение и запись файлов в Python: методы read(), readline(), readlines(), write(), writelines(), построчный перебор, strip().

    3. Менеджер контекста with open()

      Менеджер контекста with open() в Python: безопасное открытие файлов, автоматическое закрытие, два файла в одном with, частые ошибки.

    4. Работа с путями через pathlib

      pathlib.Path в Python: создание и склейка путей, проверка существования, mkdir, read_text, write_text, glob — объектный способ работы с файловой системой.

  7. 7 Исключения в Python

    1. Блок try/except: перехват исключений

      try/except в Python: синтаксис, перехват конкретных исключений, except as e, частые типы ошибок и почему нельзя использовать голый except.

    2. Иерархия исключений и несколько except

      Иерархия исключений Python: дерево BaseException/Exception, несколько блоков except, порядок обработчиков, перехват группы через кортеж.

    3. Блоки else и finally

      Блоки else и finally в Python: else выполняется при отсутствии ошибок, finally — всегда; полная структура try/except/else/finally с примерами.

    4. raise и собственные исключения

      raise в Python: вызов исключений вручную, проброс с голым raise, создание собственных классов исключений с наследованием от Exception.

  8. 8 Полезные модули стандартной библиотеки

    1. Регулярные выражения: модуль re

      Модуль re в Python: регулярные выражения, search, findall, sub, группы захвата, основные метасимволы — практические примеры.

    2. Дата и время: модуль datetime

      Модуль datetime в Python: date, datetime, timedelta, форматирование strftime, разбор strptime — работа с датами с примерами.

    3. Работа с JSON: модуль json

      Модуль json в Python: dumps, loads, dump, load, ensure_ascii, indent, JSONDecodeError — сериализация и десериализация JSON с примерами.

  9. 9 Асинхронность и параллелизм

    1. Синхронный и асинхронный код: зачем

      В чём разница между синхронным и асинхронным кодом, что такое I/O-bound и CPU-bound задачи и когда асинхронность реально ускоряет программу.

    2. Корутины, async/await и событийный цикл

      Корутины async/await в Python и событийный цикл asyncio: что такое await, как цикл переключает задачи и почему asyncio.run запускает всё это.

    3. Задачи: gather и create_task

      Конкурентный запуск корутин в asyncio: asyncio.create_task и asyncio.gather, разница между последовательным await и параллельным ожиданием задач.

    4. Потоки, процессы, async и GIL

      threading против multiprocessing против asyncio в Python: что выбрать для I/O-bound и CPU-bound, как GIL влияет на потоки и почему процессы обходят его.

    5. concurrent.futures: пулы исполнителей

      Модуль concurrent.futures в Python: ThreadPoolExecutor и ProcessPoolExecutor, объект Future, метод map и единый интерфейс для потоков и процессов.

  10. 10 Продвинутый Python

    1. Декораторы вглубь

      Декораторы Python вглубь: декораторы с аргументами, классы-декораторы, functools.wraps для сохранения метаданных и lru_cache для мемоизации.

    2. Генераторы, yield from и ленивость

      Генераторы Python: yield и yield from, генераторные выражения и ленивые вычисления, которые экономят память и позволяют работать с бесконечными потоками.

    3. Контекстные менеджеры

      Контекстные менеджеры Python: протокол __enter__ и __exit__, оператор with для управления ресурсами и contextlib.contextmanager для кратких менеджеров.

    4. Дескрипторы и property

      Дескрипторы Python и property: методы __get__, __set__, __set_name__ для управляемого доступа к атрибутам и property как готовый удобный дескриптор.

    5. dataclasses и __slots__

      dataclasses в Python: автогенерация __init__, __repr__, __eq__ и сравнения, плюс __slots__ для экономии памяти и фиксированного набора атрибутов.

    6. Аннотации типов, typing и метаклассы

      Аннотации типов в Python: Optional, Generic и Protocol из typing для статической проверки и утиной типизации, плюс краткое введение в метаклассы.

  11. 11 Параллелизм в Python

    1. Процессы и потоки в Python
    2. Потоки в Python
    3. Пишем многопоточную программу на Python
    4. Потоки-демоны в Python
    5. Потокобезопасная очередь в Python
    6. Пул потоков в Python
    7. Предотвращение состояния гонки в Python
    8. Многопроцессорность в Python
    9. Пул процессов в Python
  12. 12 Для продвинутых

    1. Замыкания в Python
    2. Декораторы в Python
    3. Декораторы с аргументами в Python
    4. Классы-декораторы в Python

      Декораторы-классы в Python: __call__, передача аргументов через __init__, functools.wraps, счётчик вызовов, сравнение с функциями-декораторами.

    5. Последовательности в Python
    6. Отличия кортежа от списка в Python
    7. Срезы в Python
    8. Последовательность Фибоначчи в Python
    9. Итераторы в Python

      Итераторы Python: протокол __iter__/__next__, создание собственного итератора, отличие от итерируемого объекта, StopIteration, примеры.

    10. Итераторы и итерируемые объекты в Python
    11. Функция iter() в Python
    12. Генераторы в Python
    13. Генераторные выражения в Python

      Генераторные выражения Python: синтаксис, ленивые вычисления, экономия памяти, условия, вложенные циклы, сравнение со списковыми включениями.

    14. Контекстный менеджер в Python
py
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
Открыть курс →