PyCoders (پایتون)
Open in Telegram
◇ #پایتون جادوگر دنیای برنامه نویسی! ◇ معرفی حوزه های کاری پایتون ◇ معرفی کتابخونه های کاربردی ◇ معرفی دوره های مفید ◇ معرفی تکنیک ها و نکات ◇ نقشه راه حوزه های مختلف ◇ اخبار و آپدیت های پایتون ◇ و هر چیزی در مورد پایتون! ■ گروه پایتون: @programmers_py
Show more4 115
Subscribers
No data24 hours
-97 days
-1730 days
Posts Archive
4 115
🛡 آموزش نکات امنیتی برای بکاند پارت اول
نکته 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_rd4 115
🧩 کتابخانههای کمتر شناختهشده پایتون
🎨 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
4 115
🧩 کتابخانههای کمتر شناختهشده پایتون
🎨 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
4 115
🔸 ترفندهای پایتون
🔅 استفاده از Walrus Operator (:=)
گاهی لازم داریم همزمان یک مقدار را بگیریم و بررسی کنیم.
قبلاً باید دو خط مینوشتیم، اما با walrus همهچیز یکخطی میشود.
if (data := fetch_data()):
print(len(data))
✔️ کد کوتاهتر
✔️ خوانایی بیشتر
✔️ مخصوص پایتون 3.8 به بعد
🐍 @python_rd4 115
💚 جمعه سبز سبزلرن
✨ 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
4 115
🐍 چه پکیج پایتونی استفاده کنیم؟
این پست برای وقتیه که میگی:
«برای فلان کار تو پایتون چی خوبه؟»
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
4 115
⚗️ متابرنامهنویسی (Metaprogramming) در پایتون
✨ در پایتون میتونی کدی بنویسی که کد تولید کنه!
def make_adder(n):
return lambda x: x + n
add5 = make_adder(5)
print(add5(10)) # 15
🔹 این یعنی تو داری “تابعساز” مینویسی. در پروژههای بزرگ (مثل Django ORM) این مفهوم پشت صحنه کلی کار جادویی میکنه.
🐍 @python_rd4 115
🧬 پایتون فقط زبان نیست؛ یک ذهنیت تفسیری
✨ پایتون مثل C کامپایل نمیشه؛ تفسیر میشه.
اما بدون که “تفسیر” یعنی میتونی در زمان اجرا خودت رو تغییر بدی!
for name, obj in globals().items():
if callable(obj):
print("🔹", name)
🔸 این یعنی پایتون میتونه خودش رو «بررسی» کنه. چیزی که توی زبانهای استاتیک خیلی سختتره.
🐍 @python_rd4 115
🔸 نکته کاربردی از list comprehension
🔹 خیلی از تازهکارها هنوز از for معمولی برای ساخت لیست استفاده میکنن، درحالیکه میتونن با یه خط کد خلاصش کنن:
squares = [x**2 for x in range(10)]
✨ این روش نهتنها کوتاهتره، بلکه سریعتر هم اجرا میشه.
🐍 @python_rd4 115
🚀 استفاده از 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_rd4 115
🧩 نکته: 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_rd4 115
🔸 استفاده از ( )enumerate
🔹 وقتی توی یه حلقه هم به اندیس نیاز داری هم به مقدار، از enumerate استفاده کن
for i, value in enumerate(['a', 'b', 'c']):
print(i, value)
✨ دیگه نیازی به range(len(...)) نداری!
🐍 @python_rd4 115
🔸 مقایسه is و ==
🔹 تفاوتشون مهمه!
== مقادیر رو مقایسه میکنه، ولی is بررسی میکنه دو متغیر دقیقاً به یک شیء در حافظه اشاره میکنن یا نه.
a = [1, 2]; b = [1, 2]
print(a == b) # True
print(a is b) # False
🐍 @python_rd4 115
🧠 وقتی 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_rd4 115
🪞 نکته Reflection و بازرسی (Introspection)
🔸 در پایتون میتونی بفهمی یه تابع دقیقاً چه پارامترهایی داره:
import inspect
print(inspect.signature(len))
یا حتی داکاسترینگش رو بخونی😎
این قابلیت باعث شده ابزارهایی مثل FastAPI یا Typer بتونن از type hintها به صورت خودکار API بسازن🔥
🐍 @python_rd4 115
🔸 خروجی غیرمنتظره😵💫
میدونستید که NaN با خودش هم برابر نیست؟!!!
import math
nan = float('nan')
print(nan == nan) # False
print(math.isnan(nan)) # True
🔎 طبق استاندارد IEEE-754، NaN با هیچچیز برابر نیست—even خودش.
🐍 @python_rd4 115
ترفند جمع کردن دیکشنریها
🔹 از پایتون 3.9 به بعد میتونی دیکشنریها رو با عملگر | ترکیب کنی:
a = {'x': 1}; b = {'y': 2}
merged = a | b
🐍 @python_rd