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

✨ Уровень

🕗 Продолжительность

💻 Практика

Средний

6-8 месяцев

300+ упражнений по программированию

Добро пожаловать в курс среднего уровня по Python! В этом курсе вы узнаете многое о более продвинутых возможностях языка и лучших практиках их использования. Курс предназначен для людей, которые уже имеют некоторый опыт работы с Python и хотят улучшить свои знания и изучить более сложные темы.

1200px-Python-logo-notext.svg.png

К концу этого курса вы научитесь использовать классы и свободно работать с наследованием. Мы рассмотрим лучшие практики написания кода для крупных проектов и будем использовать типизацию, которая помогает статически анализировать код для обнаружения ошибок. Вы познакомитесь с декораторами и создадите собственные утилиты-декораторы, которые значительно сократят размер кода. Мы обсудим итераторы и итерируемые объекты вместе со стандартной библиотекой 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% самостоятельная работа! Завершение этого курса будет вашим достижением, и мы здесь, чтобы поддержать вас на этом пути. Вы можете использовать раздел в конце каждого упражнения, чтобы задавать вопросы или помогать другим.