# معرفی پایتون
پایتون یک زبان برنامهنویسی سطح بالا، تفسیری و همهمنظوره است که توسط Guido van Rossum در سال ۱۹۹۱ ساخته شد. فلسفه طراحی آن بر خوانایی کد و استفاده از فاصلهگذاری معنادار (Indentation) استوار است. پایتون با کتابخانه استاندارد عظیم خود به "باتریها همراه" معروف است و در حوزههای هوش مصنوعی، علم داده، توسعه وب و اتوماسیون پیشرو میباشد.
چرا پایتون؟
هوش مصنوعی و علم داده
زبان اول یادگیری ماشین با کتابخانههایی مانند TensorFlow, PyTorch و Pandas
نمونهسازی سریع
با کمترین خط کد، ایدههای خود را در سریعترین زمان ممکن پیادهسازی کنید
کتابخانه استاندارد غنی
ماژولهایی برای ایمیل، وب، پایگاه داده، ریاضیات و هزاران کاربرد دیگر بدون نصب پکیج اضافی
جامعه بزرگ
جامعهای فعال که پاسخ هر سوالی در Stack Overflow و PyPI وجود دارد
کاربردهای پایتون
- توسعه وب: Django, Flask, FastAPI, Pyramid
- علم داده و تحلیل: Jupyter Notebook, Pandas, NumPy, Matplotlib
- هوش مصنوعی و یادگیری ماشین: Scikit-learn, TensorFlow, PyTorch, Keras
- اتوماسیون و اسکریپت نویسی: Selenium, BeautifulSoup, Scrapy, PyAutoGUI
- توسعه بازی: Pygame, Arcade, Panda3D
- اپلیکیشنهای دسکتاپ: PyQt, Tkinter, Kivy
نسخههای پایتون
| نسخه | تاریخ انتشار | وضعیت | ویژگی کلیدی |
|---|---|---|---|
3.13 |
اکتبر ۲۰۲۴ | آخرین | مفسر تعاملی جدید، حذف GIL (آزمایشی)، JIT کامپایلر (آزمایشی) |
3.12 |
اکتبر ۲۰۲۳ | پشتیبانی | f-string های قدرتمندتر، بهبود پیغامهای خطا، پشتیبانی از Per-Interpreter GIL |
3.11 |
اکتبر ۲۰۲۲ | پشتیبانی | بهبود عملکرد ۱۰-۶۰٪، گروههای استثنا (Exception Groups)، TOML داخلی |
3.10 |
اکتبر ۲۰۲۱ | امنیتی | عبارات تطبیق الگو (Structural Pattern Matching) |
2.7 |
جولای ۲۰۱۰ | منسوخ شده | پایان عمر (EOL) از ۲۰۲۰. هرگز استفاده نکنید! |
# فهرست جامع مباحث پایتون (۴۰۰+ مبحث)
نقشه راه کامل یادگیری پایتون از مفاهیم پایه تا متاپروگرمینگ و همروندی پیشرفته.
بخش اول: مقدمات و مفاهیم پایه (فصلهای ۱ تا ۴۰)
- ۱. تاریخچه و فلسفه پایتون (Zen of Python)
- ۲. نصب و راهاندازی محیط توسعه (IDE)
- ۳. اجرای اولین برنامه (Hello World)
- ۴. متغیرها و مفهوم حافظه
- ۵. انواع دادههای اولیه (Primitive Data Types)
- ۶. اعداد صحیح (Integers) و عملیات ریاضی
- ۷. اعداد اعشاری (Floats) و دقت محاسباتی
- ۸. اعداد مختلط (Complex Numbers)
- ۹. رشتهها (Strings) و تعریف آنها
- ۱۰. کاراکترهای فرار (Escape Sequences)
- ۱۱. رشتههای چندخطی (Multiline Strings)
- ۱۲. عملیات روی رشتهها (الحاق و تکرار)
- ۱۳. اندیسگذاری و برش رشتهها (Indexing & Slicing)
- ۱۴. مقادیر بولی (Booleans) و منطق True/False
- ۱۵. عملگرهای انتساب (Assignment Operators)
- ۱۶. عملگرهای مقایسهای (Comparison Operators)
- ۱۷. عملگرهای منطقی (Logical Operators)
- ۱۸. عملگرهای بیتی (Bitwise Operators)
- ۱۹. اولویت عملگرها (Operator Precedence)
- ۲۰. تبدیل نوع دادهها (Type Casting)
- ۲۱. ورودی و خروجی پایه (input و print)
- ۲۲. فرمتبندی رشتهها (Old Style %)
- ۲۳. فرمتبندی رشتهها (متد format)
- ۲۴. فرمتبندی رشتهها (f-strings)
- ۲۵. کامنتگذاری و مستندسازی کد
- ۲۶. ساختار کنترلی شرطی (if)
- ۲۷. ساختار شرطی if-else
- ۲۸. ساختار شرطی if-elif-else
- ۲۹. شرطهای تو در تو (Nested Conditions)
- ۳۰. عبارات شرطی یک خطی (Ternary Operators)
- ۳۱. حلقههای تکرار (Loops) و مفهوم تکرار
- ۳۲. حلقه while و کاربردهای آن
- ۳۳. حلقه for و پیمایش توالیها
- ۳۴. تابع range و پارامترهای آن
- ۳۵. دستور break برای خروج از حلقه
- ۳۶. دستور continue برای رد کردن دور حلقه
- ۳۷. حلقه else (Loop-else)
- ۳۸. حلقههای تو در تو (Nested Loops)
- ۳۹. مبحث Indentation و اهمیت آن
- ۴۰. مدیریت خطاهای رایج در سطح مقدماتی
بخش دوم: ساختارهای دادهای پیشرفته (فصلهای ۴۱ تا ۸۰)
- ۴۱. لیستها (Lists) و تعریف آنها
- ۴۲. ایجاد لیست با استفاده از List Comprehension
- ۴۳. دسترسی به عناصر لیست (Indexing)
- ۴۴. برش لیستها (Slicing Lists)
- ۴۵. متدهای کاربردی لیست (append, insert)
- ۴۶. متدهای حذف از لیست (remove, pop, clear)
- ۴۷. مرتبسازی لیستها (sort و sorted)
- ۴۸. معکوس کردن لیستها (reverse)
- ۴۹. توابع کاربردی روی لیستها (len, max, min)
- ۵۰. کپی کردن لیستها (Shallow vs Deep Copy)
- ۵۱. تاپلها (Tuples) و ویژگیهای تغییرناپذیری
- ۵۲. بستهبندی و باز کردن تاپل (Tuple Packing/Unpacking)
- ۵۳. کاربرد تاپلها در بازگشت چندگانه مقادیر
- ۵۴. مجموعهها (Sets) و تعریف آنها
- ۵۵. عملیات ریاضی روی مجموعهها (Union, Intersection)
- ۵۶. تفاوت مجموعه و اشتراک (Difference, Symmetric Difference)
- ۵۷. بررسی وجود عضو در مجموعه
- ۵۸. مجموعههای تغییرناپذیر (Frozensets)
- ۵۹. دیکشنریها (Dictionaries) و ساختار کلید-مقدار
- ۶۰. دسترسی به مقادیر و کلیدهای دیکشنری
- ۶۱. متدهای دیکشنری (keys, values, items)
- ۶۲. افزودن و بهروزرسانی مقادیر دیکشنری
- ۶۳. حذف عناصر از دیکشنری (pop, popitem)
- ۶۴. Dictionary Comprehension
- ۶۵. دیکشنریهای تو در تو (Nested Dictionaries)
- ۶۶. مرتبسازی دیکشنریها
- ۶۷. ساختارهای داده پشته (Stack) با لیست
- ۶۸. ساختارهای داده صف (Queue) با لیست
- ۶۹. مبحث Aliasing و هویت اشیاء (is vs ==)
- ۷۰. جمعآوری زباله (Garbage Collection)
- ۷۱. معرفی ماژول collections (Deque)
- ۷۲. کلاس Counter در ماژول collections
- ۷۳. کلاس defaultdict در ماژول collections
- ۷۴. کلاس namedtuple در ماژول collections
- ۷۵. کلاس OrderedDict در ماژول collections
- ۷۶. کلاس ChainMap در ماژول collections
- ۷۷. تبدیل بین انواع ساختارهای داده
- ۷۸. بررسی کارایی ساختارهای داده (Big O)
- ۷۹. استفاده از ساختارهای داده در الگوریتمها
- ۸۰. تمرینات پیشرفته ساختارهای داده
بخش سوم: توابع و برنامهنویسی ماژولار (فصلهای ۸۱ تا ۱۲۰)
- ۸۱. تعریف توابع (Defining Functions)
- ۸۲. پارامترها و آرگومانها (Parameters vs Arguments)
- ۸۳. آرگومانهای موقعیتی (Positional Arguments)
- ۸۴. آرگومانهای کلیدی (Keyword Arguments)
- ۸۵. مقادیر پیشفرض برای پارامترها (Default Arguments)
- ۸۶. آرگومانهای دلخواه موقعیتی (*args)
- ۸۷. آرگومانهای دلخواه کلیدی (**kwargs)
- ۸۸. ترتیب آرگومانها در فراخوانی تابع
- ۸۹. بازگشت مقدار (Return Statement)
- ۹۰. توابع بدون بازگشت (None)
- ۹۱. توابع چندگانه بازگشتی
- ۹۲. متغیرهای محلی و سراسری (Local vs Global Scope)
- ۹۳. کلمه کلیدی global
- ۹۴. کلمه کلیدی nonlocal
- ۹۵. توابع تو در تو (Nested Functions)
- ۹۶. بستارها (Closures)
- ۹۷. دکوراتورها (Decorators) مقدماتی
- ۹۸. نوشتن دکوراتورهای سفارشی
- ۹۹. دکوراتورهای با پارامتر
- ۱۰۰. دکوراتورهای زنجیرهای (Chaining Decorators)
- ۱۰۱. توابع لامبدا (Lambda Functions)
- ۱۰۲. کاربرد لامبدا با توابع map و filter
- ۱۰۳. تابع map و نگاشت (Mapping)
- ۱۰۴. تابع filter و پالایش (Filtering)
- ۱۰۵. تابع reduce در ماژول functools
- ۱۰۶. توابع مرتبسازی بالا (Higher-Order Functions)
- ۱۰۷. تابع zip و ترکیب لیستها
- ۱۰۸. تابع enumerate و شمارش در حلقهها
- ۱۰۹. تابع all و any برای بررسی شرطها
- ۱۱۰. تابع sorted و پارامتر key
- ۱۱۱. تابع repr و str
- ۱۱۲. بازگشت (Recursion) و مفهوم آن
- ۱۱۳. محدودیت بازگشت و RecursionError
- ۱۱۴. مثالهای کاربردی بازگشت (فیبوناچی)
- ۱۱۵. مستندسازی توابع (Docstrings)
- ۱۱۶. انوتیشنهای نوع (Type Hints) مقدماتی
- ۱۱۷. انوتیشنهای پیشرفته (Union, Optional, List)
- ۱۱۸. ماژول typing برای انواع پیچیده
- ۱۱۹. تست کردن توابع (Unit Testing Basics)
- ۱۲۰. بهترین شیوهها در نوشتن توابع (Clean Code)
بخش چهارم: برنامهنویسی شیءگرا (OOP) (فصلهای ۱۲۱ تا ۱۶۰)
- ۱۲۱. مفاهیم شیءگرایی (OOP Paradigm)
- ۱۲۲. کلاسها و اشیاء (Classes and Objects)
- ۱۲۳. ویژگیها (Attributes) و متدها (Methods)
- ۱۲۴. متد __init__ و سازنده کلاس
- ۱۲۵. پارامتر self در کلاسها
- ۱۲۶. متدهای نمونه (Instance Methods)
- ۱۲۷. متدهای کلاس (Class Methods) با @classmethod
- ۱۲۸. متدهای استاتیک (Static Methods) با @staticmethod
- ۱۲۹. کپسولهسازی (Encapsulation) و مفهوم خصوصی
- ۱۳۰. نامگذاری خصوصی (Name Mangling)
- ۱۳۱. Property و Getter/Setter
- ۱۳۲. وراثت (Inheritance) و مفهوم آن
- ۱۳۳. وراثت تکی و چندگانه
- ۱۳۴. تابع super و فراخوانی کلاس والد
- ۱۳۵. متد __str__ برای نمایش رشتهای
- ۱۳۶. متد __repr__ برای نمایش رسمی
- ۱۳۷. چندریختی (Polymorphism)
- ۱۳۸. ابهام (Duck Typing)
- ۱۳۹. کلاسهای انتزاعی (Abstract Base Classes)
- ۱۴۰. ماژول abc و رابطها (Interfaces)
- ۱۴۱. ترکیب (Composition) در برابر وراثت
- ۱۴۲. متدهای جادویی (Magic/Dunder Methods) مقدماتی
- ۱۴۳. سربارگذاری عملگرها (Operator Overloading)
- ۱۴۴. متدهای __eq__, __lt__, __gt__
- ۱۴۵. متدهای __add__, __sub__, __mul__
- ۱۴۶. مدیریت کانتینرها (__len__, __getitem__)
- ۱۴۷. قابلیت فراخوانی اشیاء (__call__)
- ۱۴۸. مدیریت منابع (__enter__, __exit__)
- ۱۴۹. متدهای __new__ و __del__
- ۱۵۰. کپی و عمیقسازی در اشیاء
- ۱۵۱. دادههای کلاس (Class Data) vs دادههای نمونه
- ۱۵۲. متدهای خصوصی در کلاس
- ۱۵۳. طراحی الگوهای پایه (Design Patterns) در OOP
- ۱۵۴. الگوی Singleton (تکنمونه)
- ۱۵۵. الگوی Factory (کارخانه)
- ۱۵۶. الگوی Observer (ناظر)
- ۱۵۷. استفاده از *args و **kwargs در کلاسها
- ۱۵۸. بررسی نوع اشیاء در اجرا (isinstance, type)
- ۱۵۹. ارثبری از کلاسهای داخلی (Inheriting from list/dict)
- ۱۶۰. معماری نرمافزار با OOP
بخش پنجم: مدیریت فایلها و سیستم (فصلهای ۱۶۱ تا ۲۰۰)
- ۱۶۱. مقدمهای بر سیستم فایل (File System)
- ۱۶۲. باز کردن فایلها (open function)
- ۱۶۳. حالتهای باز کردن فایل (Read, Write, Append)
- ۱۶۴. خواندن فایل متنی (read, readline, readlines)
- ۱۶۵. نوشتن در فایل متنی (write, writelines)
- ۱۶۶. مدیریت خودکار منابع (Context Managers - with)
- ۱۶۷. کار با مسیر فایلها (Paths)
- ۱۶۸. ماژول os و تعامل با سیستم عامل
- ۱۶۹. ماژول os.path برای مدیریت مسیرها
- ۱۷۰. ماژول pathlib (مسیرهای شیءگرا)
- ۱۷۱. بررسی وجود فایل و پوشه
- ۱۷۲. ایجاد و حذف پوشهها
- ۱۷۳. لیست کردن فایلهای یک دایرکتوری
- ۱۷۴. تغییر مسیر جاری (CWD)
- ۱۷۵. کار با فایلهای باینری (Binary Files)
- ۱۷۶. خواندن و نوشتن فایلهای CSV
- ۱۷۷. ماژول csv برای خواندن فایلهای پیچیده
- ۱۷۸. کار با فایلهای JSON (dump و load)
- ۱۷۹. زیباسازی فایلهای JSON (json.dumps)
- ۱۸۰. کار با فایلهای INI و تنظیمات (configparser)
- ۱۸۱. فشردهسازی فایلها (gzip, zipfile)
- ۱۸۲. استخراج فایلهای فشرده
- ۱۸۳. کار با فایلهای موقت (tempfile)
- ۱۸۴. دسترسی به متغیرهای محیطی (Environment Variables)
- ۱۸۵. اجرای دستورات سیستم (os.system, subprocess)
- ۱۸۶. گرفتن خروجی از دستورات ترمینال
- ۱۸۷. مدیریت مجوزهای فایل (Permissions)
- ۱۸۸. یافتن فایلها با الگو (glob, fnmatch)
- ۱۸۹. راهاندازی سرور ساده فایل (http.server)
- ۱۹۰. کار با فایلهای XML
- ۱۹۱. پارس کردن فایلهای XML
- ۱۹۲. کار با فایلهای YAML (پیشنیاز نصب)
- ۱۹۳. لاگ کردن در فایل (Logging to File)
- ۱۹۴. مدیریت خطا در کار با فایلها (IOError)
- ۱۹۵. رمزنگاری فایلها (Hashing)
- ۱۹۶. کدگذاری و رمزنگاری پایه
- ۱۹۷. کار با فایلهای حجیم (Chunking)
- ۱۹۸. قفل کردن فایلها (File Locking)
- ۱۹۹. مانیتورینگ تغییرات فایلها (Watchdog)
- ۲۰۰. بهترین شیوههای مدیریت فایل
بخش ششم: مدیریت خطا و استثناها (فصلهای ۲۰۱ تا ۲۲۰)
- ۲۰۱. مفهوم خطا و استثنا (Exceptions)
- ۲۰۲. بلوک try و except
- ۲۰۳. گرفتن چندین استثنا (Multiple Exceptions)
- ۲۰۴. دستور else در بلوک try
- ۲۰۵. دستور finally در بلوک try
- ۲۰۶. ایجاد استثنای دستی (raise)
- ۲۰۷. ایجاد کلاس استثنای سفارشی (Custom Exception)
- ۲۰۸. زنجیره استثناها (Exception Chaining)
- ۲۰۹. بافت استثنا (Exception Context - __context__)
- ۲۱۰. هشدارها (Warnings)
- ۲۱۱. ماژول warnings
- ۲۱۲. دیباگ کردن کد (Debugging Basics)
- ۲۱۳. استفاده از pdb برای دیباگ
- ۲۱۴. مدیریت خطاهای منطقی
- ۲۱۵. مدیریت خطاهای سینتکسی
- ۲۱۶. مدیریت خطاهای زمان اجرا (Runtime Errors)
- ۲۱۷. استراتژیهای مدیریت خطا (Fail Fast vs LBYL)
- ۲۱۸. لاگ کردن خطاها (Logging Exceptions)
- ۲۱۹. بازگرداندن خطا به کاربر (User Feedback)
- ۲۲۰. تست خطاها در تست واحد
بخش هفتم: تولیدکنندهها و تکرارکنندهها (فصلهای ۲۲۱ تا ۲۴۰)
- ۲۲۱. پروتکل تکرارکننده (Iterator Protocol)
- ۲۲۲. متدهای __iter__ و __next__
- ۲۲۳. ایجاد کلاس تکرارکننده سفارشی
- ۲۲۴. مفهوم تولیدکننده (Generators)
- ۲۲۵. کلمه کلیدی yield
- ۲۲۶. تفاوت Generator و Iterator
- ۲۲۷. بیان تولیدکننده (Generator Expressions)
- ۲۲۸. کارایی تولیدکنندهها در حافظه
- ۲۲۹. ارسال داده به تولیدکننده (send)
- ۲۳۰. بستن تولیدکننده (close)
- ۲۳۱. پرتاب استثنا در تولیدکننده (throw)
- ۲۳۲. تولیدکنندههای بینهایت
- ۲۳۳. زنجیرهای کردن تولیدکنندهها
- ۲۳۴. ماژول itertools (مقدماتی)
- ۲۳۵. توابع count, cycle, repeat در itertools
- ۲۳۶. توابع chain, islice در itertools
- ۲۳۷. توابع compress, dropwhile, takewhile
- ۲۳۸. توابع groupby و permutations
- ۲۳۹. توابع combinations و combinations_with_replacement
- ۲۴۰. کاربردهای پیشرفته itertools
بخش هشتم: پردازش رشته و متن (فصلهای ۲۴۱ تا ۲۶۰)
- ۲۴۱. معرفی ماژول re (عبارات باقاعده)
- ۲۴۲. متدهای پایه re (match, search, findall)
- ۲۴۳. متد finditer و اشیاء Match
- ۲۴۴. متاکاراکترها (Metacharacters) در Regex
- ۲۴۵. مجموعههای کاراکتری (Character Sets)
- ۲۴۶. محدودهها (Ranges) و منفی کردن مجموعه
- ۲۴۷. متاکاراکترهای تکرار (Quantifiers)
- ۲۴۸. لنگرها (Anchors) ^ و $
- ۲۴۹. گروهبندی (Grouping) با پرانتز
- ۲۵۰. گرفتن گروهها (Capturing Groups)
- ۲۵۱. گروههای غیرگیرنده (Non-capturing Groups)
- ۲۵۲. گروههای نامگذاری شده (Named Groups)
- ۲۵۳. مراجع به عقب (Backreferences)
- ۲۵۴. پیشنمایش (Lookahead) و پیشبینی (Lookbehind)
- ۲۵۵. پرچمها (Flags) در ماژول re
- ۲۵۶. جستجوی حساس به حروف بزرگ و کوچک
- ۲۵۷. جایگزینی با sub و subn
- ۲۵۸. تقسیم متن با split بر اساس Regex
- ۲۵۹. کامپایل کردن الگوهای Regex (re.compile)
- ۲۶۰. کاربردهای پیشرفته Regex در پاکسازی داده
بخش نهم: ریاضیات، علم داده و تاریخ (فصلهای ۲۶۱ تا ۲۸۰)
- ۲۶۱. ماژول math و توابع ریاضی
- ۲۶۲. توابع مثلثاتی (Trigonometric Functions)
- ۲۶۳. توابع لگاریتمی و توانی
- ۲۶۴. ثابتهای ریاضی (pi, e)
- ۲۶۵. ماژول cmath برای اعداد مختلط
- ۲۶۶. ماژول decimal برای محاسبات دقیق اعشاری
- ۲۶۷. کنترل دقت در ماژول decimal
- ۲۶۸. ماژول fractions برای اعداد گویا
- ۲۶۹. ماژول random و تولید اعداد تصادفی
- ۲۷۰. تولید اعداد صحیح و اعشاری تصادفی
- ۲۷۱. انتخاب تصادفی از لیست (choice, sample)
- ۲۷۲. مخلوط کردن لیست (shuffle)
- ۲۷۳. توزیعهای آماری در ماژول random
- ۲۷۴. ماژول statistics و محاسبات آماری
- ۲۷۵. میانگین، میانه و واریانس
- ۲۷۶. کار با تاریخ و زمان (datetime)
- ۲۷۷. کلاس date و کار با تاریخ
- ۲۷۸. کلاس time و کار با ساعت
- ۲۷۹. کلاس datetime و ترکیب تاریخ و ساعت
- ۲۸۰. کلاس timedelta و محاسبات زمانی
- ۲۸۱. فرمتبندی و پارس تاریخ (strftime/strptime)
- ۲۸۲. ماژول time و تابع time.sleep
- ۲۸۳. ماژول calendar و تقویم
- ۲۸۴. کار با timezone و مناطق زمانی
- ۲۸۵. ماژول hashlib و هش کردن دادهها
- ۲۸۶. الگوریتمهای MD5 و SHA
- ۲۸۷. ماژول secrets برای امنیت رمزنگاری
- ۲۸۸. تولید توکن امن (Token Generation)
- ۲۸۹. مقدمهای بر ماژول numbers
بخش دهم: همروندی و موازیت (فصلهای ۲۹۱ تا ۳۲۰)
- ۲۹۱. مفاهیم پروسه (Process) و ترد (Thread)
- ۲۹۲. ماژول threading و ایجاد ترد
- ۲۹۳. چرخه حیات یک ترد
- ۲۹۴. همگامسازی تردها (Locks)
- ۲۹۵. قفلهای قابل استفاده مجدد (RLock)
- ۲۹۶. سمافورها (Semaphores)
- ۲۹۷. رویدادها (Events) در تردینگ
- ۲۹۸. شرطها (Conditions) در تردینگ
- ۲۹۹. صفها (Queues) برای ارتباط بین تردها
- ۳۰۰. مشکل GIL (Global Interpreter Lock)
- ۳۰۱. ماژول multiprocessing و ایجاد پروسه
- ۳۰۲. اشتراکگذاری حافظه بین پروسهها
- ۳۰۳. صفها در multiprocessing
- ۳۰۴. استخرهای پروسه (Process Pools)
- ۳۰۵. برنامهنویسی ناهمگام (Asyncio) مقدماتی
- ۳۰۶. کلمات کلیدی async و await
- ۳۰۷. حلقههای رویداد (Event Loops)
- ۳۰۸. تعریف کوروتینها (Coroutines)
- ۳۰۹. اجرای همزمان کوروتینها (gather, wait)
- ۳۱۰. مدیریت تسکها در Asyncio
- ۳۱۱. استریمها در Asyncio
- ۳۱۲. همگامسازی در Asyncio (Locks, Events)
- ۳۱۳. استفاده از Queue در Asyncio
- ۳۱۴. مدیریت استثناها در Asyncio
- ۳۱۵. تایمرها و وظایف تکرار شونده در Asyncio
- ۳۱۶. ماژول concurrent.futures
- ۳۱۷. استفاده از ThreadPoolExecutor
- ۳۱۸. استفاده از ProcessPoolExecutor
- ۳۱۹. مقایسه عملکرد Thread vs Process vs Async
- ۳۲۰. بهترین شیوههای همروندی
بخش یازدهم: شبکه و اینترنت (فصلهای ۳۲۱ تا ۳۴۰)
- ۳۲۱. مقدمهای بر سوکتنویسی (Sockets)
- ۳۲۲. ماژول socket و ایجاد سوکت
- ۳۲۳. سوکتهای سمت سرور (Server Sockets)
- ۳۲۴. سوکتهای سمت کلاینت (Client Sockets)
- ۳۲۵. پروتکلهای TCP و UDP
- ۳۲۶. ارسال و دریافت دادهها
- ۳۲۷. مدیریت خطا در ارتباطات شبکه
- ۳۲۸. ماژول urllib برای درخواستهای وب
- ۳۲۹. دانلود فایل با urllib
- ۳۳۰. ماژول http.client
- ۳۳۱. ماژول smtp برای ارسال ایمیل
- ۳۳۲. ماژول pop3 و imap برای دریافت ایمیل
- ۳۳۳. ماژول uuid و تولید شناسه یکتا
- ۳۳۴. ماژول ipaddress برای کار با IP
- ۳۳۵. پارس کردن URL (urlparse)
- ۳۳۶. رمزنگاری و رمزگشایی Base64
- ۳۳۷. ماژول binascii برای تبدیل باینری به ASCII
- ۳۳۸. مفهوم کوکیها و سشنها (تئوری)
- ۳۳۹. وبساکتها (WebSocket) مقدماتی
- ۳۴۰. امنیت در شبکه (SSL/TLS Basics)
بخش دوازدهم: ابزارهای توسعه و دیباگ (فصلهای ۳۴۱ تا ۳۶۰)
- ۳۴۱. ماژول sys و تعامل با مفسر
- ۳۴۲. آرگومانهای خط فرمان (sys.argv)
- ۳۴۳. مسیرهای اجرا و ماژولها (sys.path)
- ۳۴۴. خروج از برنامه (sys.exit)
- ۳۴۵. ماژول os و اطلاعات سیستم
- ۳۴۶. ماژول platform و شناسایی سیستم عامل
- ۳۴۷. ماژول time و اندازهگیری زمان اجرا
- ۳۴۸. پروفایل کردن کد (cProfile)
- ۳۴۹. بهینهسازی سرعت اجرا
- ۳۵۰. ماژول traceback و ردیابی خطا
- ۳۵۱. ماژول pdb و دیباگ کردن خط به خط
- ۳۵۲. استفاده از break point در pdb
- ۳۵۳. ماژول unittest برای تست نویسی
- ۳۵۴. نوشتن تست کیس (Test Cases)
- ۳۵۵. Assertion و بررسی صحت کد
- ۳۵۶. setUp و tearDown در تستها
- ۳۵۷. ماژول doctest و تست در مستندات
- ۳۵۸. ماژول logging و ثبت وقایع
- ۳۵۹. تنظیم سطح لاگ (DEBUG, INFO, ERROR)
- ۳۶۰. فرمتبندی خروجی لاگ و ذخیره در فایل
بخش سیزدهم: دادهساختارهای خاص و الگوریتم (فصلهای ۳۶۱ تا ۳۸۰)
- ۳۶۱. ساختار داده پشته (Stack) پیشرفته
- ۳۶۲. ساختار داده صف (Queue) پیشرفته
- ۳۶۳. ساختار داده درخت (Tree)
- ۳۶۴. پیمایش درخت (DFS, BFS)
- ۳۶۵. ساختار داده گراف (Graph)
- ۳۶۶. نمایش گراف با لیست مجاورت و ماتریس
- ۳۶۷. الگوریتمهای جستجو (Linear, Binary)
- ۳۶۸. الگوریتمهای مرتبسازی (Bubble, Selection)
- ۳۶۹. الگوریتم مرتبسازی سریع (Quick Sort)
- ۳۷۰. الگوریتم مرتبسازی ادغامی (Merge Sort)
- ۳۷۱. الگوریتمهای هش (Hashing)
- ۳۷۲. مفهوم پیمایشگرها و تولیدکنندهها در الگوریتم
- ۳۷۳. الگوریتمهای حریصانه (Greedy)
- ۳۷۴. برنامهنویسی پویا (Dynamic Programming) مقدماتی
- ۳۷۵. مثالهای DP (مسئله کولهپشتی)
- ۳۷۶. پیچیدگی زمانی و مکانی (Time & Space Complexity)
- ۳۷۷. ماژول heapq و صف اولویت (Priority Queue)
- ۳۷۸. الگوریتمهای کوتاهترین مسیر (Dijkstra)
- ۳۷۹. کار با بیتها و عملیات بیتی پیشرفته
- ۳۸۰. طراحی الگوریتمهای کارآمد
بخش چهاردهم: متا برنامهنویسی و داخلی پایتون (فصلهای ۳۸۱ تا ۴۰۰)
- ۳۸۱. متاپروگرامینگ (Metaprogramming) چیست؟
- ۳۸۲. متاکلاسها (Metaclasses)
- ۳۸۳. نوشتن متاکلاس سفارشی
- ۳۸۴. کاربردهای متاکلاس (Singleton Pattern)
- ۳۸۵. ویژگیهای پویای پایتون (Dynamic Attributes)
- ۳۸۶. متد __getattr__ و __getattribute__
- ۳۸۷. توابع property پیشرفته
- ۳۸۸. توابع descriptor (Getter, Setter, Deleter)
- ۳۸۹. ماژول inspect و بررسی کد در زمان اجرا
- ۳۹۰. دریافت سورسکد یک تابع
- ۳۹۱. ماژول importlib و وارد کردن پویا
- ۳۹۲. پلاگیننویسی (Plugin Architecture)
- ۳۹۳. دکوراتورهای کلاس (Class Decorators)
- ۳۹۴. Abstract Base Classes پیشرفته
- ۳۹۵. پروتکلهای (Protocols) در ماژول typing
- ۳۹۶. ماژول dataclasses (کلاسهای داده)
- ۳۹۷. استفاده از @dataclass
- ۳۹۸. ماژول enum و شمارشها
- ۳۹۹. ساختار __slots__ و بهینهسازی حافظه
- ۴۰۰. نگاهی به مدل داده پایتون (Python Data Model)