Занятие 1.Интерпретатор Python и его окружение:
- Введение в Python. Его особенности и преимущества;
- Выполнение кода на языке Python;
- Запуск скриптов Python;
- Базовые структуры управления;
- Синтаксис функций;
- Модули/пакеты;
- Практическая работа по pip, virtualenv, pipenv.
Занятие 2.Типы данных и операций с ними:
- Встроенные типы: числовые;
- Встроенные типы: строки;
- Словарный тип;
- Практическая работа по приведению типов;
- Практическая работа по работе с строковыми типами.
Занятие 3-4.Последовательности и их виды:
- Списки (lists) и Срезы;
- Изменяемые и неизменяемые объекты;
- Функции списка/последовательности;
- Словарный тип;
- Использование типа set/frozenset;
- Другие типы/функции последовательности;
- Копирование объектов;
- Практическая работа по работе с изменяемыми и неизменяемыми объектами;
- Практическая работа по использованию последовательностей в управляющих конструкциях.
Занятие 5-6.Операции ввода-вывода:
- Операции с файлами;
- Операции с путями;
- Операции с папками;
- Коммуникация с внешними процессами;
- Синтаксический анализ аргументов командной строки;
- Практическая работа по поиску информации в файле;
- Практическая работа по созданию своего демона/сервиса по отслеживанию файлов в папке;
- Практическая работа по созданию приложения для отправки сообщений.
Занятие 7-8.Дополнительные структуры управления:
- Обработка ошибок;
- Использование lambda-выражений;
- Менеджеры контекста;
- Генераторы;
- Создание функций генератора;
- Встроенные функции, которые возвращают генераторы;
- Различия генераторов и итерируемых последовательностей;
- Практическая работа по отработке ошибок;
- Практическая работа по сбору статистики о количестве используемой итерируемыми объектами памяти;
- Практическая работа по использованию map, reduce, filter;
- Практическая работа по созданию генераторов.
Занятие 9.Регулярные выражения:
- Элементы регулярных выражений;
- Варианты использования флагов;
- Дополнительные функции регулярных выражений;
- Практическая работа по анализу текста (анализ банковского чека).
Занятие 10-11.Средства разработки:
- Виды ведения документации в коде;
- Аннотация типов;
- Тестирование кода;
- Логгирование приложений и модулей;
- Отладка приложений и модулей;
- Практическая работа по отладке и анализу ошибок;
- Практическое задание по написанию unittest’a;
- Практическое задание по документированию модуля с аннотацией типов и автогенерации документации.
Занятие 12.Дополнительные возможности:
- Декораторы;
- Практическое задание по написанию декораторов.
Занятие 13-14. ООП в Python:
- Основы ООП;
- «Магические» методы;
- Инкапсуляция в Python;
- Порядок наследования Python;
- Инспектирование свойств объекта;
- Dataclass;
- Перечисления (Enum);
- Практическая работа по написанию класса объект которого можно использовать в качестве менеджера контекста;
- Практическая работа по использованию декораторов классов;
- Практическая работа по преобразованию перечислений;
- Практическая работа по «Магическим методам».
Занятие 15.Сериализация и форматы обмена с другими приложениями:
- JSON;
- XML;
- DB-API;
- Практическая работа по сериализации и десереализации объектов в json;
- Практическая работа по SQLite.
Занятие 16.Обработка текста с помощью шаблонов:
- Обзор популярных реализаций;
- Jinja2;
- Практическая работа по форматированию набора данных.
Занятие 17-18.Веб-сервер:
- Модуль http server;
- Минималистичный фреймворк cherrypy;
- Виды http-запросов;
- Стиль взаимодействия REST;
- Практическое задание. Публикация файла/папки через http;
- Практическое задание. Создание простейшей веб-страницы.
Занятие 19-20.Получение данных из веб-страниц и внешних сервисов:
- Отправка http-запросов. Модули http, client и requests;
- Чтение веб-страниц. BeautifulSoup;
- Обзор «открытых» API для самообучения;
- Практическое задание. Чтение прогноза погоды с rp5.ua;
- Практическое задание. Отправка сообщения из самописного клиента к Telegram;
- Практическое задание. Чтение постов и комментариев из HakerNews API;
- Практическое задание. Создание веб-клиента для поиска фильмов по TheMovieDB.