Углубленный курс Python

✨ Уровень
🕗 Продолжительность
💻 Практика
Средний
6-8 месяцев
300+ упражнений по программированию
Добро пожаловать в курс среднего уровня по Python! В этом курсе вы узнаете многое о более продвинутых возможностях языка и лучших практиках их использования. Курс предназначен для людей, которые уже имеют некоторый опыт работы с Python и хотят улучшить свои знания и изучить более сложные темы.
notion image
К концу этого курса вы научитесь использовать классы и свободно работать с наследованием. Мы рассмотрим лучшие практики написания кода для крупных проектов и будем использовать типизацию, которая помогает статически анализировать код для обнаружения ошибок. Вы познакомитесь с декораторами и создадите собственные утилиты-декораторы, которые значительно сократят размер кода. Мы обсудим итераторы и итерируемые объекты вместе со стандартной библиотекой itertools. Для работы с файловой системой мы будем использовать glob и pathlib. И самое главное, мы научимся использовать async / await для оптимизации нашего кода при работе с большим объемом ввода/вывода, базами данных и сетевыми запросами.

💻 Обучение на практике

В этом курсе вы учитесь на практике! Каждая концепция сопровождается несколькими интерактивными задачами, которые вам необходимо решить, чтобы перейти к следующей. Мы считаем, что практическое обучение — лучший способ получить глубокие знания. Здесь вас ждут множество сложных и в то же время интересных упражнений для практики каждого рассмотренного понятия.
Вы будете обучаться в своем собственном темпе. Вы можете усердно заниматься и пройти несколько уровней за одну неделю, либо двигаться медленнее и уделять больше времени каждой концепции.
Есть форум для вопросов и поддержки. Вы можете задавать вопросы или отвечать на вопросы других под каждой задачей.

🎓 Учебная программа

Этот курс фокусируется на основных концепциях и некоторых продвинутых возможностях Python, представляя каждую из них интуитивно понятным способом. Чтобы сделать процесс более увлекательным, концепции организованы по уровням, и прохождение каждого уровня означает, что вы освоили новую тему. Вот основные темы, которые мы будем рассматривать:
Продвинутые функции
  • Только позиционные и только именованные аргументы
  • Рекурсия
  • Передача по значению VS передача по ссылке (изменяемые аргументы)
Регулярные выражения
  • Основы и применение регулярных выражений
  • Поиск и сопоставление
Классы
  • Определение классов
  • Установка и доступ к атрибутам
  • Конструктор __init__
  • Определение методов внутри классов
  • Магические методы
  • Публичные и приватные переменные
Наследование
  • Наследование от базового класса
  • Изменение функциональности путем переопределения метода
  • Расширение функциональности с помощью super()
  • Наследование от нескольких базовых классов
Инкапсуляция
  • Приватные переменные
  • Защищенные переменные
  • Как Python на самом деле обрабатывает приватные и защищенные переменные
Исключения
  • raise и except
  • Иерархия исключений
  • Создание собственных исключений
Модули
  • Работа с библиотеками
  • Модули в файловой системе
  • Инициализация модуля
  • Импортирование переменных, функций и классов
Файловая система
  • glob для работы с коллекциями файлов
  • pathlib для работы с конкретными файлами
  • Удаление файлов
  • Рекурсивное создание/удаление всего каталога
Продвинутые классы
  • Переменные класса VS переменные экземпляра
  • Встроенные декораторы (@dataclass, @property, @staticmethod и др.)
  • Абстрактные классы (модуль ABC)
Декораторы
  • Декораторы для функций
  • Декораторы для классов
  • Создание собственных декораторов
Типизация
  • Типизация для встроенных типов (int, list, dict и т.д.)
  • Типизация для собственных классов
  • Типизация внутри класса
  • Статический анализ — что мы можем достичь и каковы ограничения
Итераторы и итерируемые объекты
  • Итераторы
  • Генераторы
  • Итерируемые объекты
  • itertoolscycle(), repeat(), chain() и др.
  • Создание собственного генератора
  • Создание собственного итерируемого объекта
Контекстные менеджеры
  • Реализация собственного контекстного менеджера
  • Использование синтаксиса with
  • Контекстные менеджеры в качестве декораторов
Многопоточность и многопроцессность
  • Пакет threading
  • Создание собственного класса потока
  • Пакет multiprocessing
  • Обработка в пулах
  • Обмен данными между потоками и процессами
asyncio
  • Синтаксис async и await для функций
  • Работа с файлами
  • Работа с сетевыми запросами
  • Запросы через SQLAlchemy
  • asyncio vs потоки и процессы
Итоги и проекты
  • Несколько проектов под руководством, которые суммируют весь материал.
  • Это будет включать много поиска и самостоятельного обучения.
  • Вы автоматизируете некоторые задачи и познакомитесь с полезными библиотеками

🚀 Добро пожаловать

Обучение — это на 80% самостоятельная работа! Завершение этого курса будет вашим достижением, и мы здесь, чтобы поддержать вас на этом пути. Вы можете использовать раздел в конце каждого упражнения, чтобы задавать вопросы или помогать другим.