برنامه نویسی تابعی با پایتون

Functional Programming With Python

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: مقدمه ای مبتدی بر ساختارهای تابعی در پایتون تسلط عملی با نقشه، فیلتر، کاهش، zip، هر، همه، لیست، مجموعه، فرهنگ لغت و درک مولدها و عبارات مولد پوشش کامل ساختارهای تابعی میانی در پایتون: ژنراتورها، تکرارکننده ها ، تزئینات، بسته شدن، بازگشت، و خیلی بیشتر! کاوشی عملی در موضوعات پیشرفته: بسته شدن، بازگشت، کاربرد تابع جزئی، currying، حافظه‌گذاری، تکرارکننده‌های بی‌نهایت، و بارگذاری بیش از حد درک مفهومی اصول کلیدی برنامه‌نویسی تابعی: تغییرناپذیری، خلوص، توابع مرتبه بالاتر، بازگشت، و شفافیت ارجاعی نیازها: هیچ تجربه قبلی برنامه نویسی پایتون مورد نیاز نیست - این دوره برای مبتدیان است. درک اولیه مفاهیم برنامه نویسی مفید است، اما لازم نیست

به بهترین و جامع ترین مقدمه برنامه نویسی تابعی در پایتون خوش آمدید!

در این دوره آموزشی مبتدی، می‌توانید قابلیت‌های کاربردی پایتون را به صورت گام به گام و از پایه یاد بگیرید و تمرین کنید.

این دوره با درک مفهومی اصول کلیدی برنامه نویسی تابعی آغاز می شود:

  • تغییر ناپذیری: این ایده که داده ها نباید در جای خود اصلاح شوند

  • خلوص: تمرین نوشتن توابع که عوارض جانبی ایجاد نمی کنند

  • توابع مرتبه بالاتر: توابع را با سایر انواع داده‌ها به‌عنوان یکپارچه رفتار می‌کند

  • بازگشت: الگوی نوشتن توابع که خود را صدا می کنند

  • شفافیت ارجاعی: این اصل که فراخوانی تابع را می توان با مقدار برگشتی آن بدون تغییر رفتار برنامه جایگزین کرد

سپس، ابزارهای کاربردی را که Python برای کمک به ما در نوشتن کدهای عملکردی ارائه می دهد را بررسی می کنیم، از جمله:

  • نقشه، فیلتر، کاهش، zip، هر، همه: ابزارهای کاربردی برای کار با تکرارپذیر

  • مفهوم فهرست، مجموعه، فرهنگ لغت و مولد: روش‌های مختصر برای ایجاد فهرست‌ها، مجموعه‌ها، دیکشنری‌ها و مولدها

  • توابع و تکرار کننده های مولد: توابعی که می توانند متوقف شوند و از سر گرفته شوند

  • متغیر arity : توابعی که می توانند تعداد متغیری از آرگومان ها را بگیرند که در زمان نوشتن تابع ناشناخته هستند

در آخرین و طولانی‌ترین بخش دوره، نگاهی به موضوعات پیشرفته‌تر خواهیم داشت، از جمله:

  • بسته شدن: توابع مرتبه بالاتر که می توانند به متغیرهای غیر محلی دسترسی داشته باشند

  • بازگشت: توابعی که خود را صدا می کنند

  • برنامه کاربردی تابع جزئی: توابعی که توابع دیگر را با برخی آرگومان های از پیش پر شده برمی گرداند

  • currying : یک مورد خاص از برنامه کاربردی جزئی

  • حفظ کردن: ذخیره نتایج فراخوانی تابع برای سرعت بخشیدن به اجرا

  • تکرار کننده های بی نهایت : تکرار کننده هایی که هرگز پایان نمی یابند

  • اضافه بار عملکردی: توابعی که بسته به ورودی هایشان رفتار متفاوتی دارند

در طول دوره، می‌توانید مهارت‌های تازه به‌دست‌آمده خود را از طریق مجموعه‌ای از بیش از 20 چالش مهارتی تمرین کنید، که هر کدام با توضیح ویدیویی مفصلی از راه‌حلی که با هم بررسی خواهیم کرد، دنبال می‌شود.

این دوره بسیار مبتدی است و هیچ تجربه پایتون فرض نمی شود. اگر تا به حال با پایتون کار نکرده اید، مقدمه ای کامل برای برنامه نویسی پایتون به عنوان یک ضمیمه گنجانده شده است که مبانی زبان را از انواع داده های اولیه گرفته تا کانتینرها، جریان کنترل، حلقه ها، کلاس ها و موارد دیگر پوشش می دهد.

در داخل می بینمت!


سرفصل ها و درس ها

لطفا پرش نکنید PLEASE DO NOT SKIP

  • معرفی بسیار کوتاه Very Short Intro

  • تمام دفترچه های درسی All Course Notebooks

پنج اصل برنامه نویسی تابعی The Five Tenets Of Functional Programming

  • پارادایم عملکردی The Functional Paradigm

  • بخش دفترچه یادداشت Section Notebook

به عنوان اشیاء درجه یک عمل می کند Functions As First-Class Objects

  • عبور توابع به عنوان آرگومان Passing Functions As Arguments

  • توابع توابع بازگشتی Functions Returning Functions

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

توابع در ساختارهای داده Functions In Data Structures

  • لیست توابع Lists Of Functions

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

HOFs در یک نگاه HOFs At A Glance

  • توابع سفارش و مرتبه بالاتر Order And Higher-Order Functions

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

خلوص و عوارض جانبی Purity And Side Effects

  • توابع ناخالص Impure Functions

  • خلوص از بین بردن (واقع بینانه، جداسازی) عوارض جانبی است Purity Is Eliminating (Realistically, Isolating) The Side Effects

  • بخش دفترچه یادداشت Section Notebook

تنبلی Laziness

  • ارزشیابی تنبل در مقابل مشتاق Lazy vs Eager Evaluation

  • زنجیره عملیات تنبل Chaining Lazy Operations

  • بخش دفترچه یادداشت Section Notebook

تغییرناپذیری Immutability

  • لیست های قابل تغییر Mutable Lists

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • اضافی: واگرد/دوباره عملیات با داده های تغییرناپذیر Extra: Undo/Redo Operations With Immutable Data

  • بخش دفترچه یادداشت Section Notebook

نام مستعار Aliasing

  • نام مستعار و عوارض جانبی ناخواسته Aliasing And Unintended Side Effects

  • بخش دفترچه یادداشت Section Notebook

لامبدا Lambdas

  • توابع ناشناس Anonymous Functions

  • یک بیان واحد A Single Expression

  • کاربردهای خوب و بد Good And Bad Uses

  • لمبداهای تودرتو و در محل Nesting And In-Place Lambdas

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

نقشه Map

  • تحولات Transformations

  • نقشه برداری از چندین تکرار Mapping Over Multiple Iterables

  • توکار Built-Ins

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

زیپ Zip

  • زیپ اصلی The Basic Zip

  • حالت سختگیرانه Strict Mode

  • باز کردن زیپ با Splat Unzipping With Splat

  • دیکته های ساختمان Building Dicts

  • اضافی: لوله کشی عملکردی Extra: Functional Pipelining

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

فیلتر کنید Filter

  • انتخاب اعلامی Declarative Select

  • شرایط چندگانه Multiple Conditions

  • اضافی: لمبداهای تو در تو Extra: Nested Lambdas

  • فیلتر زنجیره ای Chained Filtering

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • اضافی: راه حل جایگزین با namedtuple Extra: Alternative Solution With namedtuple

  • بخش دفترچه یادداشت Section Notebook

هر و همه Any And All

  • هر Any

  • همه All

  • هر و همه با فیلتر و نقشه Any And All With Filter And Map

  • نفی Negation

  • منطق اتصال کوتاه Short Circuiting Logic

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

کاهش دهید Reduce

  • انباشته کردن Accumulate

  • آکومولاتور اولیه The Initial Accumulator

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • برنامه های بیشتر More Applications

  • چالش مهارت - اجرای رمزگذاری طول Skill Challenge - Run Length Encoding

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

درک ها Comprehensions

  • مقدمه ای بر درک مطلب Introduction To Comprehensions

  • درک لیست تودرتو Nested List Comprehensions

  • درک بیش از تکرارهای متعدد Comprehensions Over Multiple Iterables

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

مفاهیم را تنظیم کنید Set Comprehensions

  • از لیست ها به مجموعه ها From Lists To Sets

  • عملیات پیشرفته تر More Advanced Operations

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • چالش مهارت اضافی: پرایم های کارآمد Extra Skill Challenge: Efficient Primes

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

درک فرهنگ لغت Dictionary Comprehensions

  • ساخت دیکشنری های جدید Building New Dictionaries

  • موارد استفاده بیشتر More Use Cases

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • راه حل جایگزین Alternative Solution

  • بخش دفترچه یادداشت Section Notebook

تکرار کننده ها Iterators

  • مفاهیم و مبانی Concepts And Foundations

  • پیاده سازی پروتکل Iterator Implementing The Iterator Protocol

  • بخش دفترچه یادداشت Section Notebook

ژنراتورها Generators

  • مقدمه ای بر توابع ژنراتور Introduction To Generator Functions

  • عبارات ژنراتور Generator Expressions

  • ارتباط دو طرفه با ژنراتورها Two-Way Communication With Generators

  • چالش مهارت: مولد فیبوناچی بی نهایت Skill Challenge: Infinite Fibonacci Generator

  • راه حل Solution

  • راه حل جایگزین Alternative Solution

  • اضافی: پنجره کشویی فیبوناچی با Deque Extra: Sliding Window Fibonacci With Deque

  • خط لوله داده با استفاده از ژنراتورها Data Pipelining Using Generators

  • بخش دفترچه یادداشت Section Notebook

واریادیک Variadics

  • *آرگس و **کوارگ *args and **kwargs

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

HOF های تو در تو Nested HOFs

  • توابع سفارش بالاتر بازبینی شدند Higher Order Functions Revisited

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

بسته شدن Closures

  • بسته شدن چیست؟ What Is A Closure?

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

دکوراتورها Decorators

  • مقدمه ای بر دکوراتورها Introduction To Decorators

  • تزئین توابع پارامتر شده Decorating Parameterized Functions

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

دکوراتورهای پیشرفته Advanced Decorators

  • دکوراتورهای پیشرفته Advanced Decorators

  • زنجیر کردن چند دکوراتور Chaining Multiple Decorators

  • حفظ هویت با @wraps Preserving Identity With @wraps

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

بازگشت Recursion

  • مقدمه ای بر بازگشت Introduction To Recursion

  • درختان بازگشتی و روابط عود Recursion Trees And Recurrence Relations

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بازگشت دم و محدودیت های بازگشت در پایتون Tail Recursion And Recursion Limits In Python

  • بازگشت متقابل Mutual Recursion

  • تجزیه داده های ساختاریافته با توابع بازگشتی Parsing Structured Data With Recursive Functions

  • یک بهبود جزئی A Slight Improvement

  • چالش مهارت - جستجوی باینری بازگشتی Skill Challenge - Recursive Binary Search

  • راه حل Solution

  • چالش مهارت - امضای بازسازی شده Skill Challenge - Refactored Signature

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

حفظ کردن Memoization

  • یک درک مفهومی A Conceptual Understanding

  • تعریف یک تابع یادداشت Defining A Memoization Function

  • ابزارهای Caching از پیش تعریف شده Predefined Caching Utilities

  • اضافی: حافظه داخلی Extra: Inline Memoization

  • بخش دفترچه یادداشت Section Notebook

کاری و جزئی Currying And Partials

  • برنامه کاربردی جزئی Partial Function Application

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

اضافه بار و چند شکلی با تک ارسال Overloading And Polymorphism With singledispatch

  • توابع چند شکلی Polymorphic Functions

  • یک گوچا سریع A Quick Gotcha

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

تکرار کننده های بی نهایت Infinite Iterators

  • بشمار Count

  • چرخه های بی نهایت Infinite Cycles

  • چرخه های محدود با تکرار Finite Cycles With Repeat

  • چالش مهارت Skill Challenge

  • راه حل Solution

  • بخش دفترچه یادداشت Section Notebook

پیوست: اصول پایتون را در کمتر از 3 ساعت کامل کنید Appendix: Complete Python Fundamentals In Less Than 3 Hours

  • لطفا توجه داشته باشید Please Note

  • بخش معرفی Section Intro

  • انواع داده ها Data Types

  • متغیرها Variables

  • عملگرهای محاسباتی و تخصیص افزوده Arithmetic And Augmented Assignment Operators

  • Ints و Floats Ints And Floats

  • عملگرهای بولین و مقایسه Booleans And Comparison Operators

  • رشته ها Strings

  • روش ها Methods

  • ظروف I: فهرست ها Containers I: Lists

  • لیست ها در مقابل رشته ها Lists vs. Strings

  • فهرست روش ها و توابع List Methods And Functions

  • ظروف دوم: تاپل Containers II: Tuples

  • ظروف III: مجموعه ها Containers III: Sets

  • ظروف چهارم: لغت نامه ها Containers IV: Dictionaries

  • کلیدهای فرهنگ لغت و مقادیر Dictionary Keys And Values

  • اپراتورهای عضویت Membership Operators

  • کنترل جریان: if، else، و elif Controlling Flow: if, else, And elif

  • ارزش حقیقت غیر بولی ها Truth Value Of Non-booleans

  • برای حلقه ها For Loops

  • توالی تغییرناپذیر range(). The range() Immutable Sequence

  • در حالی که حلقه ها While Loops

  • شکستن و ادامه Break And Continue

  • زیپ کردن Iterables Zipping Iterables

  • فهرست درک List Comprehensions

  • تعریف توابع Defining Functions

  • آرگومان های تابع: موقعیت در مقابل کلمه کلیدی Function Arguments: Positional vs Keyword

  • لامبدا Lambdas

  • وارد کردن ماژول ها Importing Modules

نمایش نظرات

برنامه نویسی تابعی با پایتون
جزییات دوره
14.5 hours
191
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
516
4.9 از 5
دارد
دارد
دارد
Andy Bek
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Andy Bek Andy Bek

مشاور نرم افزار