PyCoders (پایتون)
4.07K subscribers
959 photos
148 videos
68 files
204 links
#پایتون جادوگر دنیای برنامه نویسی!
◇ معرفی حوزه های کاری پایتون
◇ معرفی کتابخونه های کاربردی
◇ معرفی دوره های مفید
◇ معرفی تکنیک ها و نکات
◇ نقشه راه حوزه های مختلف
◇ اخبار و آپدیت های پایتون
◇ و هر چیزی در مورد پایتون!

■ گروه پایتون:
@programmers_py
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
از زیبایی و قدرت پایتون هر چقد بگم کمه


🐍 @python_rd
6
This media is not supported in your browser
VIEW IN TELEGRAM
♥️ رسم قلب با پایتون


🐍 @python_rd
4🔥2👍1
🔸 ترفندهای پایتون

🔅بهینه‌سازی حافظه با slots

اگر میلیون‌ها آبجکت می‌سازی، این گزینه نجاتت می‌دهد.


class User:
__slots__ = ("name", "age")
def __init__(self, name, age):
self.name = name
self.age = age



✔️ مصرف RAM کمتر
✔️ سرعت بیشتر آبجکت‌ها


🐍 @python_rd
🤔2
🔸 ترفندهای پایتون

🔅استفاده از enumerate و zip به شکلی حرفه‌ای

برای مدیریت چند لیست و اندیس همزمان:


for i, (a, b) in enumerate(zip([1,2,3], [4,5,6])):
print(i, a, b)


✔️ کاهش کدهای بی‌خود
✔️ حلقه‌های تمیز

🐍 @python_rd
3👍2
🔅 کد دانلود صفحه وب

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
👍2
🔸 ترفندهای پایتون

🔅مدیریت state در async با ContextVar

در FastAPI و برنامه‌های async خیلی کاربردیه.


from contextvars import ContextVar

request_id = ContextVar("request_id", default=None)



✔️ نگه‌داشتن state بدون مشکلات همزمانی


🐍 @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
🔅 اندازه فایل یا فولدر رو با پایتون بگیر


import os

print(os.path.getsize("file.txt"), "bytes")




🐍 @python_rd
3
🔸 ترفندهای پایتون

🔅نکته DataClass برای کلاس‌های تمیز

دیگه نیازی نیست init و repr بنویسی؛ خودش می‌سازه.

from dataclasses import dataclass

@dataclass
class User:
name: str
age: int



✔️ 70٪ کد کمتر
✔️ خوانایی بیشتر


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


🐍 @python_rd
9👍3
سلام بچه ها، حالتون چطوره؟
یکم از خودتون بگید، صحبت کنیم،
الان چیکار میکنید؟
چه مباحثی از پایتون رو کار کردید؟
تو چه مرحله ای هستید؟
به درآمد رسیدید یا هنوز تو مراحل یادگیری هستید؟
3
🔆کوتاه نویسی با پایتون:
Walrus Operator (:=)

🔸از نسخه ۳.۸ به بعد یه ابزار جدید به پایتون اضافه شد به اسم Walrus Operator.
باهاش می‌تونی هم‌زمان *یه مقدار رو ذخیره کنی* و *از همون مقدار داخل شرط استفاده کنی*.
یعنی هم کدت کوتاه‌تر می‌شه، هم تمیزتر.

مثال ساده:
if (name := input("Name: ")):
print("Hello", name)

بدون walrus مجبور بودی اول name رو بگیری، بعد توی if چکش کنی.
اینجا همه‌چی یک‌جا و شیک انجام می‌شه. این قابلیت توی حلقه‌ها واقعاً مفیده.

🐍 @python_rd
3👍3
🔆بهینه‌سازی مصرف RAM با slots

🔸به
‌صورت پیش‌فرض هر آبجکت پایتون یه دیکشنری داخلی داره که کلی جا می‌گیره. 
اگه تعداد آبجکت‌ها زیاد باشه، مصرف رم می‌ره هوا. 
اینجا __slots__ به کارت میاد.

با تعریف اسلاتس، پایتون به کلاس می‌گه دقیقاً چه attribute هایی داری، 
در نتیجه دیگه واسه هر شیء دیکشنری نمی‌سازه و مصرف حافظه تا حد زیادی کم می‌شه.

class User:
    __slots__ = ("name", "age")
    def __init__(self, name, age):
        self.name = name
        self.age = age


این تکنیک مخصوص وقتاییه که با هزاران آبجکت طرفی و پرفورمنس برات مهمه.

🐍 @python_rd
2
🔆خروجی کد چیه؟

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 یا شرط‌ها) بدون اینکه منطق کد رو بهم بزنی ازش استفاده کنی و با حذف کردنش، کدهات تمیز باقی می‌مونن.

مثال:

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
18😁2👏1
خروجی کد چیه؟

x = 5 print( x + "5")
Anonymous Quiz
33%
55
9%
10
3%
5
54%
هیچکدام (error)
This media is not supported in your browser
VIEW IN TELEGRAM
🔆الگوریتم Bellman-Ford

🔹یافتن سریع ترین راه از نقطه 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

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