Заняття 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’у;
- Практичне завдання з документування модуля з анотацією типів та автогенерації документації.
Заняття 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.