en
Feedback
PyCoders (پایتون)

PyCoders (پایتون)

Open in Telegram

◇ #پایتون جادوگر دنیای برنامه نویسی! ◇ معرفی حوزه های کاری پایتون ◇ معرفی کتابخونه های کاربردی ◇ معرفی دوره های مفید ◇ معرفی تکنیک ها و نکات ◇ نقشه راه حوزه های مختلف ◇ اخبار و آپدیت های پایتون ◇ و هر چیزی در مورد پایتون! ■ گروه پایتون: @programmers_py

Show more
4 115
Subscribers
No data24 hours
-97 days
-1730 days
Posts Archive
🛡 آموزش نکات امنیتی برای بک‌اند پارت اول نکته SQL Injection 🔻 مشکل: وقتی Query را مستقیم از ورودی کاربر بسازی، هکر می‌تونه Query رو تزریق کنه. 🔻 مثال خطرناک:
username = input("username: ")
query = f"SELECT * FROM users WHERE username = '{username}'"
اگر کاربر وارد کند: OR '1'='1 ' کل جدول برگشت داده می‌شود! 🔻 راه‌حل: ✔️ استفاده از Prepared Statements / Parameterized Queries ✔️ و ORMها مثل Django ORM یا SQLAlchemy خودشون جلوی این حمله رو می‌گیرن. 🐍 @python_rd

🧩 کتابخانه‌های کمتر شناخته‌شده پایتون 🎨 rich برای ساخت خروجی رنگی، جدول، progress bar و لاگ‌های زیبا در ترمینال. 🖥 typer ساده‌ترین راه ساخت CLI حرفه‌ای و سریع فقط با چند خط کد. 📝 loguru لاگ‌نویسی راحت، تمیز و بدون تنظیمات دردسرساز logging استاندارد. 🕒 pendulum مدیریت تاریخ/زمان دقیق‌تر و بهتر از datetime با امکانات اضافی. ⚡️ polars نسخه‌ی بسیار سریع‌تر و مدرن‌تر از pandas برای کار با داده‌های حجیم. 🔍 pydantic برای ساخت و اعتبارسنجی مدل‌های داده‌ای با سرعت بالا و تایپ دقیق. 🔐 cryptography کتابخانه‌ای امن برای رمزنگاری، هش، امضای دیجیتال و کلیدهای امن. 🧪 pytest ساده‌ترین ابزار برای تست‌نویسی سریع، خوانا و ماژولار. 📦 python-decouple برای مدیریت امن تنظیمات پروژه مثل API Key بدون قرار دادن در کد. 👁 tqdm نمایش Progress Bar حرفه‌ای برای حلقه‌ها و عملیات طولانی. 🧰 attrs جایگزین مختصر و سریع برای کلاس‌های داده‌ای با کد کمتر نسبت به dataclass. 🌐 httpx نسل جدید درخواست‌های HTTP—سریع، async-friendly و مدرن‌تر از requests. 🔄 orjson سریع‌ترین JSON Parser پایتون، مخصوص کارهای سنگین داده‌ای. 🧩 marshmallow برای serialization / deserialization و validate کردن داده‌ها. 📊 tabulate نمایش داده‌ها در قالب جدول‌های زیبا در ترمینال. 📚 poetry مدیریت پکیج‌ها و پروژه‌های پایتونی با محیط مجازی خودکار و ساده‌تر از pip+venv. 🤖 huggingface_hub برای دانلود، آپلود و مدیریت مدل‌های ML روی HuggingFace. 🔎 boltons مجموعه‌ای از ابزارهای کوچک و کاربردی که کمبودهای استاندارد پایتون را جبران می‌کند. 🧮 sympy محاسبات ریاضی نمادین مثل مشتق، انتگرال و معادلات. 🗂 python-dotenv لود کردن متغیرهای محیطی از فایل .env برای امنیت بیشتر. 🐍 @python_rd

✨ لایبرری‌های فوق العاده پایتون 🐍 @python_rd

🔸 زندگی کوتاهه، از پایتون استفاده کن! 🐍 @python_rd

🧩 کتابخانه‌های کمتر شناخته‌شده پایتون 🎨 rich برای ساخت خروجی رنگی، جدول، progress bar و لاگ‌های زیبا در ترمینال. 🖥 typer ساده‌ترین راه ساخت CLI حرفه‌ای و سریع فقط با چند خط کد. 📝 loguru لاگ‌نویسی راحت، تمیز و بدون تنظیمات دردسرساز logging استاندارد. 🕒 pendulum مدیریت تاریخ/زمان دقیق‌تر و بهتر از datetime با امکانات اضافی. ⚡️ polars نسخه‌ی بسیار سریع‌تر و مدرن‌تر از pandas برای کار با داده‌های حجیم. 🔍 pydantic برای ساخت و اعتبارسنجی مدل‌های داده‌ای با سرعت بالا و تایپ دقیق. 🔐 cryptography کتابخانه‌ای امن برای رمزنگاری، هش، امضای دیجیتال و کلیدهای امن. 🧪 pytest ساده‌ترین ابزار برای تست‌نویسی سریع، خوانا و ماژولار. 📦 python-decouple برای مدیریت امن تنظیمات پروژه مثل API Key بدون قرار دادن در کد. 👁 tqdm نمایش Progress Bar حرفه‌ای برای حلقه‌ها و عملیات طولانی. 🧰 attrs جایگزین مختصر و سریع برای کلاس‌های داده‌ای با کد کمتر نسبت به dataclass. 🌐 httpx نسل جدید درخواست‌های HTTP—سریع، async-friendly و مدرن‌تر از requests. 🔄 orjson سریع‌ترین JSON Parser پایتون، مخصوص کارهای سنگین داده‌ای. 🧩 marshmallow برای serialization / deserialization و validate کردن داده‌ها. 📊 tabulate نمایش داده‌ها در قالب جدول‌های زیبا در ترمینال. 📚 poetry مدیریت پکیج‌ها و پروژه‌های پایتونی با محیط مجازی خودکار و ساده‌تر از pip+venv. 🤖 huggingface_hub برای دانلود، آپلود و مدیریت مدل‌های ML روی HuggingFace. 🔎 boltons مجموعه‌ای از ابزارهای کوچک و کاربردی که کمبودهای استاندارد پایتون را جبران می‌کند. 🧮 sympy محاسبات ریاضی نمادین مثل مشتق، انتگرال و معادلات. 🗂 python-dotenv لود کردن متغیرهای محیطی از فایل .env برای امنیت بیشتر. 🐍 @python_rd

🔸 ترفندهای پایتون 🔅 استفاده از Walrus Operator (:=) گاهی لازم داریم همزمان یک مقدار را بگیریم و بررسی کنیم. قبلاً باید دو خط می‌نوشتیم، اما با walrus همه‌چیز یک‌خطی می‌شود.
if (data := fetch_data()):
    print(len(data))
✔️ کد کوتاه‌تر ✔️ خوانایی بیشتر ✔️ مخصوص پایتون 3.8 به بعد 🐍 @python_rd

💚 جمعه سبز سبزلرن ✨ 70% تخفیف روی دوره‌های سبزلرن این فرصت فوق‌العاده رو از دست ندید 🔸لینک دوره الگوریتم: ✨ https://sabzlea
💚 جمعه سبز سبزلرن ✨ 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️⃣ برای 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

⚗️ متا‌برنامه‌نویسی (Metaprogramming) در پایتون ✨ در پایتون می‌تونی کدی بنویسی که کد تولید کنه!
def make_adder(n):
    return lambda x: x + n

add5 = make_adder(5)
print(add5(10))  # 15
🔹 این یعنی تو داری “تابع‌ساز” می‌نویسی. در پروژه‌های بزرگ (مثل Django ORM) این مفهوم پشت صحنه کلی کار جادویی می‌کنه. 🐍 @python_rd

🧬 پایتون فقط زبان نیست؛ یک ذهنیت تفسیری ✨ پایتون مثل C کامپایل نمی‌شه؛ تفسیر می‌شه. اما بدون که “تفسیر” یعنی می‌تونی در زمان اجرا خودت رو تغییر بدی!
for name, obj in globals().items():
    if callable(obj):
        print("🔹", name)
🔸 این یعنی پایتون می‌تونه خودش رو «بررسی» کنه. چیزی که توی زبان‌های استاتیک خیلی سخت‌تره. 🐍 @python_rd

🔸 نکته کاربردی از list comprehension 🔹 خیلی از تازه‌کارها هنوز از for معمولی برای ساخت لیست استفاده می‌کنن، درحالی‌که می‌تونن با یه خط کد خلاصش کنن:
squares = [x**2 for x in range(10)]
✨ این روش نه‌تنها کوتاه‌تره، بلکه سریع‌تر هم اجرا می‌شه. 🐍 @python_rd

🚀 استفاده از lru_cache@ برای افزایش سرعت توابع 🔹 در محاسبات بازگشتی یا تکراری، کش کردن نتایج فوق‌العاده مؤثره:
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

🧩 نکته: Decoratorها در عمل (بدون پیچیدگی!) 🔹 دکوراتورها فقط ظاهر شیک نیستن؛ ابزاری برای جداکردن منطق اصلی از کنترل‌های تکراری‌ هستن. مثلاً برای محاسبه زمان اجرا:
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

🔸 استفاده از ( )enumerate 🔹 وقتی توی یه حلقه هم به اندیس نیاز داری هم به مقدار، از enumerate استفاده کن
for i, value in enumerate(['a', 'b', 'c']):
    print(i, value)
✨ دیگه نیازی به range(len(...)) نداری! 🐍 @python_rd

🔸 مقایسه is و == 🔹 تفاوتشون مهمه! == مقادیر رو مقایسه می‌کنه، ولی is بررسی می‌کنه دو متغیر دقیقاً به یک شیء در حافظه اشاره می‌کنن یا نه.
a = [1, 2]; b = [1, 2]
print(a == b)  # True
print(a is b)  # False
🐍 @python_rd

🧠 وقتی Context Manager فراتر از ()with open میره 🔸 همه فقط ( )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

🪞 نکته Reflection و بازرسی (Introspection) 🔸‌ در پایتون می‌تونی بفهمی یه تابع دقیقاً چه پارامترهایی داره:
import inspect
print(inspect.signature(len))
یا حتی داک‌استرینگش رو بخونی😎 این قابلیت باعث شده ابزارهایی مثل FastAPI یا Typer بتونن از type hintها به صورت خودکار API بسازن🔥 🐍 @python_rd

🔸 خروجی غیرمنتظره😵‍💫 میدونستید که NaN با خودش هم برابر نیست؟!!!
import math
nan = float('nan')
print(nan == nan)          # False
print(math.isnan(nan))     # True
🔎 طبق استاندارد IEEE-754، NaN با هیچ‌چیز برابر نیست—even خودش. 🐍 @python_rd

ترفند جمع کردن دیکشنری‌ها 🔹 از پایتون 3.9 به بعد می‌تونی دیکشنری‌ها رو با عملگر | ترکیب کنی:
a = {'x': 1}; b = {'y': 2}
merged = a | b
🐍 @python_rd