فصل اول: مقدمهای بر زبان برنامهنویسی پایتون
- درس اول: تاریخچه پایتون
- درس دوم: ویژگیهای پایتون
- درس سوم: مزیتهای پایتون
- درس چهارم: موارد استفاده اصلی پایتون
- درس پنجم: زمینههای شعلی پایتون
فصل دوم: نصب پایتون و محیط توسعه کد (IDE)
- درس اول: نصب پایتون بر روی ویندوز
- درس دوم: نصب پایتون بر روی لینوکس
- درس سوم: نصب Visual Studio Code
- درس چهارم: نصب PyCharm
- درس پنجم: نصب ++Notepad و Sublime
- درس ششم: نصب vs code بر روی اوبونتو
فصل سوم: متغیرها
- درس اول: تعریف متغیرها
- درس دوم: قوانین نامگذاری متغیرها
- درس سوم: مقداردهی همزمان به چند متغیر
- درس چهارم: نمایش متغیرها در خروجی
- درس پنجم: متغیرهای عمومی (global) و محلی (local)
فصل چهارم: انواع دادهای
- درس اول: معرفی انواع دادهای
- درس دوم: تعیین نوع دادهای متغیر
فصل پنجم: انواع دادهای :::: دادههای عددی
- درس اول: معرفی انواع دادهای عددی
- درس دوم: تبدیل انواع عددی به یکدیگر
فصل ششم: انواع دادهای :::: دادههای متنی
- درس اول: مقدمهای بر رشتههای متنی
- درس دوم: رشتههای متنی به عنوان آرایه
- درس سوم: تشخیص وجود یک کاراکتر در رشته متنی
- درس چهارم: اتصال رشتههای متنی
- درس پنجم: قالببندی رشته متنی
- درس ششم: کاراکتر فرار
- درس هفتم: متدهای موجود برای رشتههای متنی strip, lower, upper, replace, split
- درس هشتم: متدهای موجود برای رشتههای متنی capitalize, casefold, center, count, encode
- درس نهم: متدهای موجود برای رشتههای متنی endswith, expandtabs, find, format_map
- درس دهم: متدهای موجود برای رشتههای متنی index, isalnum, isalpha, isdecimal, isdigit
- درس یازدهم: متدهای موجود برای رشتههای متنی isidentifier, islower, isupper, isprintable
- درس دوازدهم: متدهای موجود برای رشتههای متنی isspace, istitle, isnumeric, join, ljust
- درس سیزدهم: متدهای موجود برای رشتههای متنی istrip, maketrans, partition, rfind, rindex
- درس چهاردهم: متدهای موجود برای رشتههای متنی rjust, rpartition, rsplit, rstrip, splitlines
- درس پانزدهم: متدهای موجود برای رشتههای متنی startswith, swapcase, title, translate, zfill
فصل هفتم: انواع دادهای :::: دادههای منطقی
- درس اول: مقدمهای بر دادههای منطقی
- درس دوم: مجموعه مقادیر True یا False
- درس سوم: مقادیر منطقی، به عنوان خروجی توابع
فصل هشتم: انواع دادهای :::: دادههای ترتیبی تغییرپذیر (لیست)
- درس اول: معرفی دادههای ترتیبی و لیستها
- درس دوم: دسترسی به اعضای لیستها
- درس سوم: پیمایش در اعضای یک لیست
- درس چهارم: افزودن یا حذف عضو در یک لیست
- درس پنجم: کپی کردن یک لیست
- درس ششم: متدهای موجود برای لیستها count, extend, index, reverse, sort
فصل نهم: انواع دادهای :::: دادههای ترتیبی تغییرناپذیر (تاپل)
- درس اول: مقدمهای بر تاپلها
- درس دوم: دسترسی به اعضای تاپل
- درس سوم: تغییر مقدار عناصر تاپل
- درس چهارم: پیمایش در عناصر یک تاپل
- درس پنجم: افزودن یا حذف عضو در یک تاپل
- درس ششم: اتصال دو تاپل به یکدیگر
- درس هفتم: متدهای موجود برای تاپلها count, index
فصل دهم: انواع دادهای :::: دادههای بدون ترتیب (سِت)
- درس اول: مقدمهای بر ستها
- درس دوم: دسترسی به اعضای یک سِت
- درس سوم: تغییر اعضای یک سِت
- درس چهارم: اتصال دو سِت به یکدیگر
- درس پنجم: متدهای موجود برای سِتها copy, difference, difference_update
- درس ششم: متدهای موجود برای سِتها intersection, intersection_update, isdisjoint
- درس هفتم: متدهای موجود برای سِتها issubset, issuperset
- درس هشتم: متدهای موجود برای سِتها symmetric_difference, symmetric_difference_update
فصل یازدهم: انواع دادهای :::: دادههای نگاشتی (دیکشنری)
- درس اول: مقدمهای بر دیکشنریها
- درس دوم: دسترسی به اعضای یک دیکشنری
- درس سوم: تغییر مقادیر یک دیکشنری
- درس چهارم: پیمایش در طول اعضای یک دیکشنری
- درس پنجم: افزودن یا حذف عضو در یک دیکشنری
- درس ششم: ایجاد یکی کپی از یک دیکشنری
- درس هفتم: دیکشنریهای تو در تو
- درس هشتم: متدهای موجود برای دیکشنریها fromkeys, keys, setdefault, update
فصل دوازدهم: عملگرها
- درس اول: معرفی انواع عملگرها
- درس دوم: عملگرهای حسابی
- درس سوم: عملگرهای تخصیصی (مقداردهی)
- درس چهارم: عملگرهای قیاسی
- درس پنجم: عملگرهای منطقی
- درس ششم: عملگرهای هویتی
- درس هفتم: عملگرهای عضویتی
- درس هشتم: عملگرهای بیتی
- درس نهم: تقدم عملگرها
فصل سیزدهم: ساختارهای کنترل برنامه :::: عبارات شرطی
- درس اول: مقدمهای بر عبارات شرطی
- درس دوم: عبارات شرطی خلاصه شده
- درس سوم: کلمات کلیدی and و or
- درس چهارم: عبارات شرطی تو در تو
فصل چهاردهم: ساختارهای کنترل برنامه :::: حلقهها
- درس اول: مقدمهای بر حلقهها
- درس دوم: حلقه while
- درس سوم: حلقه for
- درس چهارم: تابع ()range
- درس پنجم: حلقههای تو در تو
- درس ششم: کلمه کلیدی pass
- درس هفتم: متد ()zip
- درس هشتم: توابع جادویی ()__iter__ و ()__next__
فصل پانزدهم: توابع
- درس اول: مقدمهای بر توابع
- درس دوم: آرگومانهای ورودی یک تابع
- درس سوم: خروجی توابع
- درس چهارم: دریافت ورودی از کاربر
- درس پنجم: توابع با بیش از یک خروجی
- درس ششم: توابع سفارشی در قیاس با توابع پیشساخته
- درس هفتم: ارسال یک لیست به عنوان آرگومان ورودی
- درس هشتم: آرگومانهای ورودی دلخواه یا args*
- درس نهم: توابع بازگشتی Recursive Functions
- درس دهم: نوشتن متون مستند یاDocstrings برای توابع
- درس یازدهم: کلمه کلیدی yield
فصل شانزدهم: رفع حالات استثناء
- درس اول: مقدمهای بر حالات استثناء
- درس دوم: انواع حالات استثناء
- درس سوم: ایجاد یک حالت استثناء سفارشی
فصل هفدهم: کار با فایلها
- درس اول: مقدمهای بر نحوه کار با فایلها
- درس دوم: متد readline
- درس سوم: متدهای seek، strip، rstrip، lstrip
- درس چهارم: تفاوت میان متدهای readline و readlines
- درس پنجم: بستن فایلها با متد close
- درس ششم: نوشتن در فایلها با متد write
- درس هفتم: نحوه ایجاد و حذف یک فایل
- درس هشتم: سایر حالتهای باز کردن یک فایل
فصل هجدهم: تمرینات تکمیلی بخش اول
فصل نوزدهم: توابع لامبدا
- درس اول: مقدمهای بر توابع لامبدا
- درس دوم: تمرینات تکمیلی توابع لامبدا
فصل بیستم: ماژولها در پایتون
فصل بیست و یکم: ماژولهای کاربردی | بخش 1
- درس اول: ماژول datetime
- درس دوم: ماژول csv
- درس سوم: ماژول json
- درس چهارم: ماژول xml
فصل بیست و دوم: ماژولهای کاربردی | بخش 2
- درس اول: ماژول sys
- درس دوم: ماژول io
- درس سوم: ماژول os
- درس چهارم: ماژول itertools
- درس پنجم: ماژول functools
فصل بیستم و سوم: توابع جزئی (Partial Functions)
- درس اول: مقدمهای بر توابع جزئی
- درس دوم: نحوه ارسال آرگومان به توابع جزئی
- درس سوم: سایر ویژگیهای توابع جزئی
فصل بیستم و چهارم: توابع کاربردی | بخش 1
- درس اول: تابع enumerate
- درس دوم: تابع any
- درس سوم: تابع all
- درس چهارم: تابع bin
فصل بیستم و پنجم: توابع کاربردی | بخش 2
- درس اول: تابع map
- درس دوم: تابع filter
- درس سوم: تابع reduce
فصل بیستم و ششم: توابع کاربردی | بخش 3
- درس اول: تابع eval
- درس دوم: تابع exec
- درس سوم: تابع compile
فصل بیستم و هفتم: توابع کاربردی | بخش 4
- درس اول: تابع format
- درس دوم: تابع globals
- درس سوم: تابع locals
فصل بیستم و هشتم: توابع کاربردی | بخش 5
- درس اول: تابع reversed
- درس دوم: تابع slice
- درس سوم: تابع sorted
- درس چهارم: تابع vars
فصل بیست و نهم: نحوه ایجاد محیط مجازی (Virtual Environment)
- درس اول: مقدمهای بر محیطهای مجازی
- درس دوم: مزایای استفاده از محیطهای مجازی
- درس سوم: ایجاد یک محیط مجازی با venv
- درس چهارم: فعال و غیرفعال کردن یک محیط مجازی
- درس پنجم: مدیریت وابستگیها در یک محیط مجازی
- درس ششم: کار با pip در یک محیط مجازی
- درس هفتم: بهترین روشها برای استفاده از محیط مجازی
فصل سیام: دریافت ورودی از خط فرمان (Command Line Arguments)
- درس اول: مقدمهای بر آرگومانهای خط فرمان
- درس دوم: درک sys.argv
- درس سوم: تجزیه آرگومانهای خط فرمان با استفاده از argparse
- درس چهارم: استفاده از مقادیر پیش فرض و اعتبارسنجی با argparse
- درس پنجم: کار با آرگومانهای اختیاری و موضعی
- درس ششم: تمرین های تکمیلی برای آرگومانهای خط فرمان
فصل سی و یکم: تمرینات تکمیلی بخش دوم
فصل اول: ساختمانهای داده پیشرفته
- درس اول: مقدمه ای بر ساختمانهای داده پیشرفته
- درس دوم: درک تاپلها و Dequeهای نامگذاری شده
- درس سوم: کار با Defaultdict و OrderedDict
- درس چهارم: مقدمهای بر شمارندهها و ChainMap
- درس پنجم: استفادههای پیشرفته از مجموعهها و مجموعههای منجمد (Frozensets)
فصل دوم: تکرار کنندهها (Iterators) و مولدها (Generators)
- درس اول: بررسی دقیقتر Iteratorها
- درس دوم: توابع پیشرفته Generator
- درس سوم: عبارات مولد و مزایای عملکرد
- درس چهارم: کوروتینها (Coroutine) و کاربردهای آنها
- درس پنجم: استفاده از itertools برای الگوهای تکرار پیچیده
فصل سوم: برنامهنویسی شیگرا (OOP)
- درس اول: مقدمهای بر اصول برنامهنویسی شیگرا
- درس دوم: الگوهای طراحی کلاس پیشرفته
- درس سوم: کپسولهسازی | اصول و تمرینات
- درس چهارم: درک و اجرای وراثت
- درس پنجم: وراثت چندگانه و MRO (Method Resolution Order)
- درس ششم: چندریختی | مفاهیم و کاربردها
- درس هفتم: کلاسها و رابطهای انتزاعی (Abstract)
- درس هشتم: سربارگذاری عملگر و متدهای جادویی
- درس نهم: استفاده مؤثر از کلاسها و متدهای استاتیک
- درس دهم: متاکلاسها و کاربردهای آنها
- درس یازدهم: طراحی کلاسهای قابل استفاده مجدد و مقیاسپذیر
- درس دوازدهم: تمرینات عملی در مورد مفاهیم پیشرفته OOP
فصل چهارم: دکوراتورها در پایتون
- درس اول: آشنایی با دکوراتورها
- درس دوم: نوشتن دکوراتورهای سفارشی
- درس سوم: دکوراتور property
- درس چهارم: درک functools.wraps
- درس پنجم: موارد استفاده عملی از دکوراتورها
- درس ششم: توالی چند دکوراتور
فصل پنجم: عملکرد پیشرفته با توابع پایتون
- درس اول: Closureها و کاربرد آنها
- درس دوم: توابع مرتبه بالاتر
- درس سوم: اشیاء قابل فراخوانی (Callable) در پایتون
- درس چهارم: پیادهسازی Memoization
فصل ششم: Context Managers و عبارت with
- درس اول: مبانی Context Managers
- درس دوم: نوشتن Context Managers سفارشی
- درس سوم: استفاده از contextlib برای ساده کردن مدیریت متن (Context)
- درس چهارم: موارد استفاده عملی برای Context Managers
فصل هفتم: مدیریت خطا و استثناء (Exception Handling) پیشرفته
- درس اول: مدیریت استثناهای تودرتو
- درس دوم: استثناهای متوالی و عبارت raise
- درس سوم: استثناهای سفارشی با ویژگیهای توسعه یافته
- درس چهارم: استفاده از else و finally به طور موثر در بلاک try
فصل هشتم: کار با ویژگیهای مدرن پایتون
- درس اول: ویژگیهای جدید در پایتون 3.10 تا 3.12
- درس دوم: تطبیق الگو با match-case
- درس سوم: موارد استفاده تطبیق الگوی ساختاری
- درس چهارم: اشاره به نوع داده و چک کردن نوع داده
- درس پنجم: اپراتور walrus (:=) و کاربردهای آن
فصل نهم: همزمانی (Concurrency) و موازیسازی (Parallelism)
- درس اول: مقدمهای بر Threading و Multiprocessing
- درس دوم: برنامهنویسی ناهمزمان با asyncio
- درس سوم: استفاده موثر از async/await
- درس چهارم: درک GIL و پیادهسازی آن
- درس پنجم: بهترین روشها برای همزمانی در پایتون
فصل دهم: کار با API و Web Scraping
- درس اول: مقدمهای بر APIها
- درس دوم: فراخوانی API با استفاده از requests
- درس سوم: احراز هویت و مدیریت خطا در APIها
- درس چهارم: اصول Web Scraping با کتابخانه BeautifulSoup
فصل یازدهم: چندنخی (Multithreading) در پایتون
- درس اول: درک اصول چندنخی
- درس دوم: چرخه حیات و مدیریت Thread
- درس سوم: ایجاد Thread ها با استفاده از ماژول threading
- درس چهارم: همگامسازی Thread ها با Locks
- درس پنجم: استفاده از Semaphores و Conditions
- درس ششم: ارتباط با Thread و منابع مشترک
- درس هفتم: Thread Pools و اجرای همزمان
- درس هشتم: اشکال زدایی برنامههای چندنخی
- درس نهم: کاربردهای چندنخی در دنیای واقعی
- درس دهم: Multithreading در قیاس با Multiprocessing | تفاوتهای کلیدی
فصل دوازدهم: نوشتن کد پایتون کارآمد
- درس اول: درک پیچیدگی زمان و مکان (Time and Space Complexity)
- درس دوم: محک زدن کد پایتون
- درس سوم: بهینهسازی کد با استفاده از ماژولهای داخلی (Built-in)
- درس چهارم: نوشتن کد پایتونیک
- درس پنجم: استفاده از Cython برای بهبود سرعت
فصل سیزدهم: تست پیشرفته و اشکال زدایی
- درس اول: نوشتن تستهای واحد با unittest و pytest
- درس دوم: Mocking و Patching در تستها
- درس سوم: اشکالزدایی کد پایتون با pdb
- درس چهارم: استفاده از Logging برای اشکالزدایی
- درس پنجم: ادغام و تست مداوم
فصل چهاردهم: بستهبندی (Packaging) و استقرار برنامههای کاربردی پایتون
- درس اول: ساختار پروژههای پایتون
- درس دوم: ایجاد و انتشار بستههای پایتون
- درس سوم: مدیریت وابستگیها با pip و poetry
- درس چهارم: کنترل نسخه با Git
- درس پنجم: استقرار برنامهها با استفاده از Docker
فصل پانزدهم: الگوهای طراحی در پایتون
- درس اول: الگوهای طراحی چیست؟
- درس دوم: الگوهای ایجادی | Singleton, Factory Method, Abstract Factory, Builder, Prototype
- درس سوم: الگوهای ساختاری | Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- درس چهارم: الگوهای رفتاری | Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor