🔸 ترفندهای پایتون
🔅بهینهسازی حافظه با slots
اگر میلیونها آبجکت میسازی، این گزینه نجاتت میدهد.
✔️ مصرف RAM کمتر
✔️ سرعت بیشتر آبجکتها
🐍 @python_rd
🔅بهینهسازی حافظه با slots
اگر میلیونها آبجکت میسازی، این گزینه نجاتت میدهد.
class User:
__slots__ = ("name", "age")
def __init__(self, name, age):
self.name = name
self.age = age
✔️ مصرف RAM کمتر
✔️ سرعت بیشتر آبجکتها
🐍 @python_rd
🤔2
🔸 ترفندهای پایتون
🔅استفاده از enumerate و zip به شکلی حرفهای
برای مدیریت چند لیست و اندیس همزمان:
✔️ کاهش کدهای بیخود
✔️ حلقههای تمیز
🐍 @python_rd
🔅استفاده از enumerate و zip به شکلی حرفهای
برای مدیریت چند لیست و اندیس همزمان:
for i, (a, b) in enumerate(zip([1,2,3], [4,5,6])):
print(i, a, b)
✔️ کاهش کدهای بیخود
✔️ حلقههای تمیز
🐍 @python_rd
❤3👍2
🔅 کد دانلود صفحه وب
📌 کاربرد: Scraping / گرفتن HTML یک سایت
🐍 @python_rd
import requests
url = "https://example.com"
response = requests.get(url)
print(response.text[:500]) # نمایش 500 کاراکتر اول
📌 کاربرد: Scraping / گرفتن HTML یک سایت
🐍 @python_rd
🔸 مسیر Machine Learning با پایتون
🤖 رودمپ یادگیری ماشین با پایتون
1) پایتون علمی
NumPy، Pandas، Matplotlib، Scikit-learn.
2) ریاضیات لازم
مشتق، ماتریس، وکتور، جبرخطی، آمار.
3) الگوریتمهای ML
Regression، SVM، Decision Tree، RandomForest، KMeans.
4) مدلسازی و ارزیابی
Train/Test، Cross Validation، Metrics مثل F1، ROC.
5) یادگیری عمیق
PyTorch یا TensorFlow → CNN، RNN، Transformers.
6) و MLOps ساده
Model Serving، FastAPI، Docker.
7) مهندسی داده مقدماتی
ETL، Pipelines، Feature Store.
8) پروژهها
طبقهبندی تصاویر، تحلیل متن، پیشبینی سری زمانی.
🐍 @python_rd
🤖 رودمپ یادگیری ماشین با پایتون
1) پایتون علمی
NumPy، Pandas، Matplotlib، Scikit-learn.
2) ریاضیات لازم
مشتق، ماتریس، وکتور، جبرخطی، آمار.
3) الگوریتمهای ML
Regression، SVM، Decision Tree، RandomForest، KMeans.
4) مدلسازی و ارزیابی
Train/Test، Cross Validation، Metrics مثل F1، ROC.
5) یادگیری عمیق
PyTorch یا TensorFlow → CNN، RNN، Transformers.
6) و MLOps ساده
Model Serving، FastAPI، Docker.
7) مهندسی داده مقدماتی
ETL، Pipelines، Feature Store.
8) پروژهها
طبقهبندی تصاویر، تحلیل متن، پیشبینی سری زمانی.
🐍 @python_rd
👍2
🔸 ترفندهای پایتون
🔅مدیریت state در async با ContextVar
در FastAPI و برنامههای async خیلی کاربردیه.
✔️ نگهداشتن state بدون مشکلات همزمانی
🐍 @python_rd
🔅مدیریت state در async با ContextVar
در FastAPI و برنامههای async خیلی کاربردیه.
from contextvars import ContextVar
request_id = ContextVar("request_id", default=None)
✔️ نگهداشتن state بدون مشکلات همزمانی
🐍 @python_rd
🔸 ترفندهای پایتون
🔅بعد از try از else و finally غافل نشو
کد تمیزتر و منطقیتر:
✔️ در واقع else فقط وقتی اجرا میشود که ارور نباشد
✔️ اما finally همیشه اجرا میشود
🐍 @python_rd
🔅بعد از try از else و finally غافل نشو
کد تمیزتر و منطقیتر:
try:
x = 10 / num
except ZeroDivisionError:
print("Cannot divide by zero!")
else:
print("No error, result:", x)
finally:
print("Finished")
✔️ در واقع else فقط وقتی اجرا میشود که ارور نباشد
✔️ اما finally همیشه اجرا میشود
🐍 @python_rd
🔅 اندازه فایل یا فولدر رو با پایتون بگیر
🐍 @python_rd
import os
print(os.path.getsize("file.txt"), "bytes")
🐍 @python_rd
❤3
🔸 ترفندهای پایتون
🔅نکته DataClass برای کلاسهای تمیز
دیگه نیازی نیست init و repr بنویسی؛ خودش میسازه.
✔️ 70٪ کد کمتر
✔️ خوانایی بیشتر
🐍 @python_rd
🔅نکته DataClass برای کلاسهای تمیز
دیگه نیازی نیست init و repr بنویسی؛ خودش میسازه.
from dataclasses import dataclass
@dataclass
class User:
name: str
age: int
✔️ 70٪ کد کمتر
✔️ خوانایی بیشتر
🐍 @python_rd
❤9
سلام بچه ها، حالتون چطوره؟
یکم از خودتون بگید، صحبت کنیم،
الان چیکار میکنید؟
چه مباحثی از پایتون رو کار کردید؟
تو چه مرحله ای هستید؟
به درآمد رسیدید یا هنوز تو مراحل یادگیری هستید؟
یکم از خودتون بگید، صحبت کنیم،
الان چیکار میکنید؟
چه مباحثی از پایتون رو کار کردید؟
تو چه مرحله ای هستید؟
به درآمد رسیدید یا هنوز تو مراحل یادگیری هستید؟
❤3
🔆کوتاه نویسی با پایتون:
Walrus Operator (:=)
🔸از نسخه ۳.۸ به بعد یه ابزار جدید به پایتون اضافه شد به اسم Walrus Operator.
باهاش میتونی همزمان *یه مقدار رو ذخیره کنی* و *از همون مقدار داخل شرط استفاده کنی*.
یعنی هم کدت کوتاهتر میشه، هم تمیزتر.
مثال ساده:
بدون walrus مجبور بودی اول name رو بگیری، بعد توی if چکش کنی.
اینجا همهچی یکجا و شیک انجام میشه. این قابلیت توی حلقهها واقعاً مفیده.
🐍 @python_rd
Walrus Operator (:=)
🔸از نسخه ۳.۸ به بعد یه ابزار جدید به پایتون اضافه شد به اسم Walrus Operator.
باهاش میتونی همزمان *یه مقدار رو ذخیره کنی* و *از همون مقدار داخل شرط استفاده کنی*.
یعنی هم کدت کوتاهتر میشه، هم تمیزتر.
مثال ساده:
if (name := input("Name: ")):
print("Hello", name)بدون walrus مجبور بودی اول name رو بگیری، بعد توی if چکش کنی.
اینجا همهچی یکجا و شیک انجام میشه. این قابلیت توی حلقهها واقعاً مفیده.
🐍 @python_rd
❤3👍3
🔆بهینهسازی مصرف RAM با slots
🔸بهصورت پیشفرض هر آبجکت پایتون یه دیکشنری داخلی داره که کلی جا میگیره.
اگه تعداد آبجکتها زیاد باشه، مصرف رم میره هوا.
اینجا
با تعریف اسلاتس، پایتون به کلاس میگه دقیقاً چه attribute هایی داری،
در نتیجه دیگه واسه هر شیء دیکشنری نمیسازه و مصرف حافظه تا حد زیادی کم میشه.
این تکنیک مخصوص وقتاییه که با هزاران آبجکت طرفی و پرفورمنس برات مهمه.
🐍 @python_rd
🔸بهصورت پیشفرض هر آبجکت پایتون یه دیکشنری داخلی داره که کلی جا میگیره.
اگه تعداد آبجکتها زیاد باشه، مصرف رم میره هوا.
اینجا
__slots__ به کارت میاد.با تعریف اسلاتس، پایتون به کلاس میگه دقیقاً چه attribute هایی داری،
در نتیجه دیگه واسه هر شیء دیکشنری نمیسازه و مصرف حافظه تا حد زیادی کم میشه.
class User:
__slots__ = ("name", "age")
def __init__(self, name, age):
self.name = name
self.age = age
این تکنیک مخصوص وقتاییه که با هزاران آبجکت طرفی و پرفورمنس برات مهمه.
🐍 @python_rd
❤2
🔆خروجی کد چیه؟
A)
🐍@python_rd
numbers = [2, 4, 6, 8]
result = []
for n in numbers:
if n == 4 or 10:
result.append(n)
print(result)
A)
[4]
B) [2, 4, 6, 8]
C) [2, 4]
D) [4, 6, 8]🐍@python_rd
❤6👍2
🔆یه ترفند خیلی کاربردی برای دیباگ کردن در پایتون، استفاده از icecream به جای پرینتهای سادهست. به جای اینکه هی بنویسی print(f'x: {x}') و سعی کنی بفهمی چی به چیه، کافیه کتابخونهش رو نصب کنی و از ic() استفاده کنی. این ابزار خودش اسم متغیر، مقدارش و حتی شماره خطی که توش اجرا شده رو خیلی تمیز و رنگی چاپ میکنه. علاوه بر این، چون خودش مقدار رو برمیگردونه، میتونی مستقیم وسط کد (حتی داخل return یا شرطها) بدون اینکه منطق کد رو بهم بزنی ازش استفاده کنی و با حذف کردنش، کدهات تمیز باقی میمونن.
مثال:
🐍 @python_rd
مثال:
from icecream import ic
def add(x, y):
return x + y
# به جای این:
# print(f"DEBUG: add(1, 2) = {add(1, 2)}")
# از این استفاده کن:
ic(add(1, 2))
🐍 @python_rd
👍2
🔆python list methods:
1. 🍔🍔🍟 .append(🍔) → 🍔🍔🍟🍔
2. 🍔🍔🍟 .count(🍔) → 2
3. 🍔🍔🍟 .copy() → 🍔🍔🍟
4. 🍔🍔🍟 .index(🍟) → 2
5. 🍔🍔🍟 .reverse() → 🍟🍔🍔
6. 🍔🍔🍟 .remove(🍟) → 🍔🍔
7. 🍔🍔🍟 insert( 1, 🥤) → 🍔🥤🍔🍟
8. 🍔🍔🍟 pop(1) → 🍔🍟
9. 🍔🍔🍟 pop() → 🍔🍔
🐍 @python_rd
1. 🍔🍔🍟 .append(🍔) → 🍔🍔🍟🍔
2. 🍔🍔🍟 .count(🍔) → 2
3. 🍔🍔🍟 .copy() → 🍔🍔🍟
4. 🍔🍔🍟 .index(🍟) → 2
5. 🍔🍔🍟 .reverse() → 🍟🍔🍔
6. 🍔🍔🍟 .remove(🍟) → 🍔🍔
7. 🍔🍔🍟 insert( 1, 🥤) → 🍔🥤🍔🍟
8. 🍔🍔🍟 pop(1) → 🍔🍟
9. 🍔🍔🍟 pop() → 🍔🍔
🐍 @python_rd
❤18😁2👏1
This media is not supported in your browser
VIEW IN TELEGRAM
🔆الگوریتم Bellman-Ford
🔹یافتن سریع ترین راه از نقطه A به H
🐍 @python_rd
🔹یافتن سریع ترین راه از نقطه A به H
def bellman_ford(nodes, edges, start, target):
dist = {n: float('inf') for n in nodes}
dist[start] = 0
for _ in range(len(nodes) - 1):
updated = False
for u, v, w in edges:
if dist[u] + w < dist[v]:
dist[v] = dist[u] + w
updated = True
if not updated: break
🐍 @python_rd
❤5
This media is not supported in your browser
VIEW IN TELEGRAM
🔆 الگوریتم Merge Sort
🐍 @python_rd
def merge_sort(arr, l, r):
if l < r:
mid = (l + r) // 2
merge_sort(arr, l, mid)
merge_sort(arr, mid + 1, r)
merge(arr, l, mid, r)
🐍 @python_rd
❤3