Функціональне програмування на Python

Ознайомтесь із функціональним програмуванням у Python за допомогою цього гіда. Вивчіть ітератори, генератори та ключові модулі, як-от itertools і functools.

Image for the 'Функціональне програмування на Python' course.

Функціональне програмування

  1. Дізнайтеся про основи функціонального програмування та його переваги, такі як модульність і легкість тестування, у цьому вичерпному огляді. Відкрийте для себе різні програмні парадигми, включаючи об'єктно-орієнтоване та процедурне програмування, і як поєднувати їх у Python.
  2. Перевірте свої знання про функціональне програмування в Python. Відповідайте на запитання про програмні парадигми, чисті функції та переваги функціонального підходу.
  3. Дізнайтеся про ітератори в Python – об'єкти, що дозволяють ефективно керувати потоком даних по одному елементу за раз. Відкрийте для себе функції, які підтримують ітерацію, і навчіться використовувати їх у ваших програмах.
  4. Перевірте свої знання про ітератори в Python з цим тестом, що включає питання про методи, функції та особливості ітераторів.
  5. Дізнайтеся про генератори та спискові вирази в Python для оптимізації ітерації та вибору елементів списку. Ефективні техніки для обробки великих обсягів даних та нескінченних потоків.
  6. Пройдіть тестування на знання виразів-генераторів та спискових виразів у Python. Перевірте своє розуміння оптимізації обробки даних.
  7. Дізнайтеся про генератори в Python — спеціальний клас функцій, що спрощують створення ітераторів. Відкрийте для себе, як генератори дозволяють зберігати локальні змінні та відновлювати виконання функцій.
  8. Перевірте свої знання про генератори в Python за допомогою цього тесту. Генератори спрощують створення ітераторів і дозволяють зберігати локальні змінні.
  9. Ознайомтеся з вбудованими функціями Python, такими як map, filter, enumerate, sorted, any, all і zip. Дізнайтеся, як вони працюють з ітераторами для підвищення ефективності коду.
  10. Перевірте свої знання про вбудовані функції Python, такі як map, filter, enumerate, sorted, any, all і zip, які працюють з ітераторами.
  11. Дізнайтеся про модуль itertools у Python, який пропонує потужні ітератори та функції для комбінування, обробки та вибору елементів. Відкрийте для себе його функціональні можливості через прості приклади.
  12. Перевірте свої знання про модуль itertools у Python. Пройдіть тест з 10 питань про ітератори та функції цього модуля.
  13. Дізнайтеся про модуль functools у Python, який надає функції вищого порядку для функціонального програмування, включаючи functools.partial та functools.reduce, для створення часткових функцій і кумулятивних обчислень.
  14. Перевірте свої знання про модуль functools у Python за допомогою цього тесту. Дізнайтеся про functools.partial, functools.reduce та інші функції.
  15. Дізнайтеся, як використовувати маленькі функції та lambda-вирази у функціональному стилі програмування на Python. Порівняйте використання lambda та def для створення анонімних функцій.
  16. Перевірте свої знання щодо використання маленьких функцій та lambda-виразів у Python з нашим тестом. Вивчіть різницю між lambda і def та їх застосування у функціональному програмуванні.
  17. Корисні посилання та подяки автора курсу.

Практичні завдання

  1. Навчися переписувати цикли for у генератори списків у Python. Проста задача на фільтрацію парних чисел допоможе краще зрозуміти синтаксис list comprehension.
  2. Створи власний ітератор зворотного відліку в Python, використовуючи методи __iter__ та __next__. Ідеальне завдання для практики протоколу ітераторів.
  3. Реалізуй генератор float_range у Python, що працює як вбудований range, але підтримує дробові значення. Ідеально для практики генераторів і роботи з дійсними числами.
  4. Реалізуй генератор walk_tree, який рекурсивно обходить вкладені словники у Python. Ідеальне завдання для практики yield from і глибокого обходу дерев.
  5. Навчіться сортувати списки словників у Python за допомогою вбудованої функції sorted() та параметра key. Задача з прикладами, підказками та тестами.
🗓

Початок

Дату початку обираєте ви (але ми радимо почати сьогодні)

👨‍🏫

Розклад

Розклад обираєте ви

🏁

Тривалість

1 тиждень

Що таке функціональне програмування?

Функціональне програмування — це парадигма програмування, що базується на використанні чистих функцій, униканні змінюваного стану та побічних ефектів. У функціональному стилі обчислення розглядаються як оцінка математичних функцій, що робить код передбачуваним, зручним для тестування та легким для паралельного виконання.

Як функціональне програмування сприяє надійному програмуванню?

Функціональне програмування підвищує надійність програмного забезпечення завдяки своїм ключовим принципам: чисті функції, відсутність побічних ефектів і незмінність даних. Чисті функції завжди дають однаковий результат для однакових вхідних даних, що робить поведінку програми передбачуваною. Відсутність змінюваного стану зменшує кількість прихованих залежностей і складних для відстеження помилок. Це полегшує тестування, спрощує налагодження та дозволяє безпечно запускати код у паралельних потоках, що особливо важливо для складних систем і багатопотокових додатків.

Автор курсу

Andrew M. Kuchling

Technical Lead at Aledade, Inc.

Bootstrap Themes

✅ Ідеальний портрет слухача: для кого цей курс?

Висока ймовірність успіху, якщо людина:

  • вже знайома з Python на базовому або середньому рівні
  • прагне писати чистіший, ефективніший і більш масштабований код
  • чув(ла) про функціональне програмування, але хоче розібратись глибше
  • хоче розширити свій технічний кругозір та підвищити експертність
  • цікавиться концепціями на кшталт map(), filter(), reduce(), lambda, itertools, functools
  • шукає інструменти для побудови декларативного, більш передбачуваного коду
  • можливо, є викладачем або ментором і хоче навчати функціональним підходам

❌  Протипоказання: для кого цей курс не підходить?

Цей курс не підходить людині, яка:

  • ніколи не писала код і не знайома з основами Python
  • шукає курс для абсолютних початківців без технічного бекґраунду
  • очікує, що курс навчить створювати повноцінні вебзастосунки чи працювати з фреймворками
  • не цікавиться принципами побудови чистого та ефективного коду
  • вважає, що функціональне програмування — це щось академічне і непрактичне

Після успішного завершення курсу

Студенти знатимуть
  • основні принципи функціонального програмування: чисті функції, відсутність побічних ефектів, композиція;
  • як використовувати функції map(), filter(), reduce() у реальних задачах;
  • принцип роботи та практичне використання lambda функцій у Python;
  • можливості бібліотек itertools та functools для обробки послідовностей та оптимізації коду;
  • як писати декларативний, компактний і зрозумілий код у функціональному стилі;
  • які переваги та обмеження має функціональний підхід у Python.

Часті питання

📌 Це безплатний курс.

❌ Ні, не підходить.

Цей курс не призначений для повних новачків у Python. Вам буде комфортніше навчатися, якщо ви вже маєте базові знання мови: вмієте створювати змінні, писати функції, використовувати цикли та умовні конструкції. Якщо ви щойно почали вивчати Python — радимо спершу пройти базовий курс Python, а вже потім занурюватися у функціональне програмування.

Andrew M. Kuchling

Старший інженер, здатний проєктувати прості, але гнучкі архітектури для нових систем або переписувати, консолідувати й покращувати наявну кодову базу. Уміє швидко писати добре організований код. Володіє середовищем Unix і різними мовами програмування, зокрема Python та C. Має навички написання системної документації та довідкових матеріалів, а також адаптації нових інженерів. Має досвід створення та проведення технічних презентацій. [LinkedIn]

Персональний сайт автора: https://amk.ca/

Курс є перекладом "Functional Programming HOWTO", автор: A. M. Kuchling. Інформація про копірайт: History and License.

Залишись ще питання? Безплатна консультація в Телеграмі.

Запросити друзів та знайомих на курс

Telegram
Viber
LinkedIn
WhatsApp

ФОП Обрізан Володимир Ігорович, ІПН 3055516250. Послуги надаються згідно з договором публічної оферти. Контактний телефон: +380 73 971-54-71, email: selenium@first.institute