🧠 وقتی Context Manager فراتر از ()with open میره
🔸 همه فقط ( )with open رو بلدن، ولی میتونی هر رفتار خاصی رو خودت مدیریت کنی:
✨ نتیجه: بخشهای مختلف برنامهات ساختارمند، تمیز و قابل کنترل میشن🔥
🐍 @python_rd
🔸 همه فقط ( )with open رو بلدن، ولی میتونی هر رفتار خاصی رو خودت مدیریت کنی:
from contextlib import contextmanager
@contextmanager
def step(name):
print(f"Start {name}")
yield
print(f"End {name}")
with step("Download"):
print("Downloading...")
✨ نتیجه: بخشهای مختلف برنامهات ساختارمند، تمیز و قابل کنترل میشن🔥
🐍 @python_rd
❤2
🔸 مقایسه is و ==
🔹 تفاوتشون مهمه!
== مقادیر رو مقایسه میکنه، ولی is بررسی میکنه دو متغیر دقیقاً به یک شیء در حافظه اشاره میکنن یا نه.
🐍 @python_rd
🔹 تفاوتشون مهمه!
== مقادیر رو مقایسه میکنه، ولی is بررسی میکنه دو متغیر دقیقاً به یک شیء در حافظه اشاره میکنن یا نه.
a = [1, 2]; b = [1, 2]
print(a == b) # True
print(a is b) # False
🐍 @python_rd
🔥2
🔸 استفاده از ( )enumerate
🔹 وقتی توی یه حلقه هم به اندیس نیاز داری هم به مقدار، از enumerate استفاده کن
✨ دیگه نیازی به range(len(...)) نداری!
🐍 @python_rd
🔹 وقتی توی یه حلقه هم به اندیس نیاز داری هم به مقدار، از enumerate استفاده کن
for i, value in enumerate(['a', 'b', 'c']):
print(i, value)
✨ دیگه نیازی به range(len(...)) نداری!
🐍 @python_rd
🧩 نکته: Decoratorها در عمل (بدون پیچیدگی!)
🔹 دکوراتورها فقط ظاهر شیک نیستن؛ ابزاری برای جداکردن منطق اصلی از کنترلهای تکراری هستن.
مثلاً برای محاسبه زمان اجرا:
🐍 @python_rd
🔹 دکوراتورها فقط ظاهر شیک نیستن؛ ابزاری برای جداکردن منطق اصلی از کنترلهای تکراری هستن.
مثلاً برای محاسبه زمان اجرا:
import time
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
print(f"⏱️ {func.__name__} took {time.time()-start:.3f}s")
return result
return wrapper
@timer
def slow_func():
time.sleep(1)
slow_func()
🐍 @python_rd
🚀 استفاده از lru_cache@ برای افزایش سرعت توابع
🔹 در محاسبات بازگشتی یا تکراری، کش کردن نتایج فوقالعاده مؤثره:
✨ اجرای این تابع با کش، صدها برابر سریعتر از حالت عادیه.
🐍 @python_rd
🔹 در محاسبات بازگشتی یا تکراری، کش کردن نتایج فوقالعاده مؤثره:
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
return n if n < 2 else fib(n-1) + fib(n-2)
print(fib(35))
✨ اجرای این تابع با کش، صدها برابر سریعتر از حالت عادیه.
🐍 @python_rd
🙏1
🔸 نکته کاربردی از list comprehension
🔹 خیلی از تازهکارها هنوز از for معمولی برای ساخت لیست استفاده میکنن، درحالیکه میتونن با یه خط کد خلاصش کنن:
✨ این روش نهتنها کوتاهتره، بلکه سریعتر هم اجرا میشه.
🐍 @python_rd
🔹 خیلی از تازهکارها هنوز از for معمولی برای ساخت لیست استفاده میکنن، درحالیکه میتونن با یه خط کد خلاصش کنن:
squares = [x**2 for x in range(10)]
✨ این روش نهتنها کوتاهتره، بلکه سریعتر هم اجرا میشه.
🐍 @python_rd
🙏2❤1
🧬 پایتون فقط زبان نیست؛ یک ذهنیت تفسیری
✨ پایتون مثل C کامپایل نمیشه؛ تفسیر میشه.
اما بدون که “تفسیر” یعنی میتونی در زمان اجرا خودت رو تغییر بدی!
🔸 این یعنی پایتون میتونه خودش رو «بررسی» کنه. چیزی که توی زبانهای استاتیک خیلی سختتره.
🐍 @python_rd
✨ پایتون مثل C کامپایل نمیشه؛ تفسیر میشه.
اما بدون که “تفسیر” یعنی میتونی در زمان اجرا خودت رو تغییر بدی!
for name, obj in globals().items():
if callable(obj):
print("🔹", name)
🔸 این یعنی پایتون میتونه خودش رو «بررسی» کنه. چیزی که توی زبانهای استاتیک خیلی سختتره.
🐍 @python_rd
👍1👎1
⚗️ متابرنامهنویسی (Metaprogramming) در پایتون
✨ در پایتون میتونی کدی بنویسی که کد تولید کنه!
🔹 این یعنی تو داری “تابعساز” مینویسی. در پروژههای بزرگ (مثل Django ORM) این مفهوم پشت صحنه کلی کار جادویی میکنه.
🐍 @python_rd
✨ در پایتون میتونی کدی بنویسی که کد تولید کنه!
def make_adder(n):
return lambda x: x + n
add5 = make_adder(5)
print(add5(10)) # 15
🔹 این یعنی تو داری “تابعساز” مینویسی. در پروژههای بزرگ (مثل Django ORM) این مفهوم پشت صحنه کلی کار جادویی میکنه.
🐍 @python_rd
👍1👎1
🐍 چه پکیج پایتونی استفاده کنیم؟
این پست برای وقتیه که میگی:
«برای فلان کار تو پایتون چی خوبه؟»
1️⃣ برای Web Scraping
🔅 پکیج requests → سادهترین راه برای گرفتن HTML / API
🔅 پکیج httpx → نسخه مدرنتر (sync + async)
🔅 پکیج beautifulsoup4 → پارسکردن HTML مثل کره 😄
🔅 پکیج scrapy → برای پروژههای اسکرپینگ جدی و بزرگ
🔅 پکیج playwright → وقتی سایت بدون جاوااسکریپت لود نمیشه
2️⃣ برای Data Cleaning (پاکسازی داده)
🔅 پکیج pandas → سلطان دیتافریم؛ فیلتر، groupby، merge و…
🔅 پکیج polars → شبیه pandas ولی خیلی سریعتر (columnar engine)
🔅 پکیج pyjanitor → روی pandas سوار میشه، تابعهای تمیزکاری آماده
🔅 پکیج rapidfuzz → برای matching فازی روی متنها (مثلاً تمیز کردن اسامی)
3️⃣ برای Async Programming (غیرهمزمان / concurrent)
🔅 پکیج asyncio → هسته اصلی async در پایتون
🔅 پکیج aiohttp → درخواستهای HTTP به صورت async
🔅 پکیج anyio / trio → فریمورکهای مدرنتر برای async
🔅 پکیج httpx → دوباره اینجا هم هست، چون async رو خوب ساپورت میکنه
4️⃣ برای ساخت Web API
🔅 پکیج fastapi → سریع، تایپهینتدوست، داک خودکار ✨
🔅 پکیج flask → مینیمال و ساده برای APIهای سبک
🔅 پکیج django-rest-framework → وقتی backend سنگین و full-feature میخوای
5️⃣ برای Automation / اسکریپتهای خودکار
🔅 پکیج apscheduler → اجرای کارها زمانبندیشده (هر روز، هر ساعت و…)
🔅 پکیج celery → پردازش background / task queue در مقیاس بزرگ
🔅 پکیج invoke → شبیه makefile ولی داخل پایتون برای اتوماسیون کارهای dev
6️⃣ برای لاگگیری و Debug بهتر
🔅 پکیج loguru → لاگنویسی شیک و راحتتر از لاگر پیشفرض
🔅 پکیج rich → نمایش رنگی لاگها، جدول، tracebackهای قشنگ
🔅 پکیج icecream → دیباگ سریع با print خوشگل (ic())
7️⃣ برای ساخت CLI (برنامه خط فرمان)
🔅 پکیج typer → روی click ساخته شده، با type hints، فوقالعاده راحت
🔅 پکیج click → کلاسیک و پایدار برای CLI
🔅 پکیج argparse → ماژول built-in؛ برای کارهای ساده
8️⃣ برای Data Science / ML پایه
🔅 پکیج numpy → پایه همهچیز؛ آرایههای عددی
🔅 پکیج pandas → مدیریت دیتا جدولی
🔅 پکیج scikit-learn → الگوریتمهای ML کلاسیک (Classification, Regression و…)
🔅 پکیج scipy → محاسبات علمی، توزیعها، بهینهسازی
9️⃣ برای NLP و کار با متن
🔅 پکیج nltk → قدیمی ولی هنوز کاربردی برای آموزش و کارهای کلاسیک
🔅 پکیج spaCy → سریع و صنعتی برای NLP
🔅 پکیج transformers (از HuggingFace) → مدلهای BERT, GPT و… آماده استفاده
🔟 برای کدنویسی تمیز و پایدار
🔅 پکیج black → فرمتکننده کد؛ هر بار یک استایل ثابت
🔅 پکیج isort → مرتبسازی importها
🔅 پکیج mypy → چککردن typeها
🔅 پکیج pytest → تستنویسی راحت و حرفهای
🐍 @python_rd
این پست برای وقتیه که میگی:
«برای فلان کار تو پایتون چی خوبه؟»
1️⃣ برای Web Scraping
🔅 پکیج requests → سادهترین راه برای گرفتن HTML / API
🔅 پکیج httpx → نسخه مدرنتر (sync + async)
🔅 پکیج beautifulsoup4 → پارسکردن HTML مثل کره 😄
🔅 پکیج scrapy → برای پروژههای اسکرپینگ جدی و بزرگ
🔅 پکیج playwright → وقتی سایت بدون جاوااسکریپت لود نمیشه
2️⃣ برای Data Cleaning (پاکسازی داده)
🔅 پکیج pandas → سلطان دیتافریم؛ فیلتر، groupby، merge و…
🔅 پکیج polars → شبیه pandas ولی خیلی سریعتر (columnar engine)
🔅 پکیج pyjanitor → روی pandas سوار میشه، تابعهای تمیزکاری آماده
🔅 پکیج rapidfuzz → برای matching فازی روی متنها (مثلاً تمیز کردن اسامی)
3️⃣ برای Async Programming (غیرهمزمان / concurrent)
🔅 پکیج asyncio → هسته اصلی async در پایتون
🔅 پکیج aiohttp → درخواستهای HTTP به صورت async
🔅 پکیج anyio / trio → فریمورکهای مدرنتر برای async
🔅 پکیج httpx → دوباره اینجا هم هست، چون async رو خوب ساپورت میکنه
4️⃣ برای ساخت Web API
🔅 پکیج fastapi → سریع، تایپهینتدوست، داک خودکار ✨
🔅 پکیج flask → مینیمال و ساده برای APIهای سبک
🔅 پکیج django-rest-framework → وقتی backend سنگین و full-feature میخوای
5️⃣ برای Automation / اسکریپتهای خودکار
🔅 پکیج apscheduler → اجرای کارها زمانبندیشده (هر روز، هر ساعت و…)
🔅 پکیج celery → پردازش background / task queue در مقیاس بزرگ
🔅 پکیج invoke → شبیه makefile ولی داخل پایتون برای اتوماسیون کارهای dev
6️⃣ برای لاگگیری و Debug بهتر
🔅 پکیج loguru → لاگنویسی شیک و راحتتر از لاگر پیشفرض
🔅 پکیج rich → نمایش رنگی لاگها، جدول، tracebackهای قشنگ
🔅 پکیج icecream → دیباگ سریع با print خوشگل (ic())
7️⃣ برای ساخت CLI (برنامه خط فرمان)
🔅 پکیج typer → روی click ساخته شده، با type hints، فوقالعاده راحت
🔅 پکیج click → کلاسیک و پایدار برای CLI
🔅 پکیج argparse → ماژول built-in؛ برای کارهای ساده
8️⃣ برای Data Science / ML پایه
🔅 پکیج numpy → پایه همهچیز؛ آرایههای عددی
🔅 پکیج pandas → مدیریت دیتا جدولی
🔅 پکیج scikit-learn → الگوریتمهای ML کلاسیک (Classification, Regression و…)
🔅 پکیج scipy → محاسبات علمی، توزیعها، بهینهسازی
9️⃣ برای NLP و کار با متن
🔅 پکیج nltk → قدیمی ولی هنوز کاربردی برای آموزش و کارهای کلاسیک
🔅 پکیج spaCy → سریع و صنعتی برای NLP
🔅 پکیج transformers (از HuggingFace) → مدلهای BERT, GPT و… آماده استفاده
🔟 برای کدنویسی تمیز و پایدار
🔅 پکیج black → فرمتکننده کد؛ هر بار یک استایل ثابت
🔅 پکیج isort → مرتبسازی importها
🔅 پکیج mypy → چککردن typeها
🔅 پکیج pytest → تستنویسی راحت و حرفهای
🐍 @python_rd
❤5🔥1
PyCoders (پایتون)
🐍 چه پکیج پایتونی استفاده کنیم؟ این پست برای وقتیه که میگی: «برای فلان کار تو پایتون چی خوبه؟» 1️⃣ برای Web Scraping 🔅 پکیج requests → سادهترین راه برای گرفتن HTML / API 🔅 پکیج httpx → نسخه مدرنتر (sync + async) 🔅 پکیج beautifulsoup4 → پارسکردن…
از این کاملتر دیده بودین؟😍✨
❤1
💚 جمعه سبز سبزلرن
✨ 70% تخفیف روی دورههای سبزلرن
این فرصت فوقالعاده رو از دست ندید
🔸لینک دوره الگوریتم:
✨ https://sabzlearn.ir/course/algorithm/
🔸لینک دوره متخصص پایتون:
✨ https://sabzlearn.ir/course/python/
🔸لینک دوره متخصص جنگو:
✨ https://sabzlearn.ir/course/django-ex/
🔸لینک دوره پروژههای کاربردی پایتون:
✨ https://sabzlearn.ir/course/applied-projects-with-python/
🔸لینک دوره بهینهنویسی پایتون:
✨ https://sabzlearn.ir/course/python-code-optimization/
🔸لینک دوره مصورسازی دادهها:
✨https://sabzlearn.ir/course/data-visualization-with-python/
🐍 @python_rd
✨ 70% تخفیف روی دورههای سبزلرن
این فرصت فوقالعاده رو از دست ندید
🔸لینک دوره الگوریتم:
✨ https://sabzlearn.ir/course/algorithm/
🔸لینک دوره متخصص پایتون:
✨ https://sabzlearn.ir/course/python/
🔸لینک دوره متخصص جنگو:
✨ https://sabzlearn.ir/course/django-ex/
🔸لینک دوره پروژههای کاربردی پایتون:
✨ https://sabzlearn.ir/course/applied-projects-with-python/
🔸لینک دوره بهینهنویسی پایتون:
✨ https://sabzlearn.ir/course/python-code-optimization/
🔸لینک دوره مصورسازی دادهها:
✨https://sabzlearn.ir/course/data-visualization-with-python/
🐍 @python_rd
❤1