PyCoders (پایتون)
4.28K subscribers
948 photos
140 videos
67 files
195 links
#پایتون جادوگر دنیای برنامه نویسی!
◇ معرفی حوزه های کاری پایتون
◇ معرفی کتابخونه های کاربردی
◇ معرفی دوره های مفید
◇ معرفی تکنیک ها و نکات
◇ نقشه راه حوزه های مختلف
◇ اخبار و آپدیت های پایتون
◇ و هر چیزی در مورد پایتون!

■ گروه پایتون:
@programmers_py
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
⭐️ میدونستید برای round تو پایتون همچین آرگومانی هم میتونید بهش بدید؟

◦•◉✿ @python_rd ✿◉•◦
8🔥2
Media is too big
VIEW IN TELEGRAM
⭐️ شما میتونین تعداد فراخوانی های #تابع_بازگشتی رو محدود کنید تا دچاره فراخوانی های بی نهایت و خطا های ناخواسته نشید!

◦•◉✿ @python_rd ✿◉•◦
11
Media is too big
VIEW IN TELEGRAM
به راحتی با یه فرمول ساده، از هر ایندکسی که دوست داری به لیست پایتونیت چرخش بده!

◦•◉✿ @python_rd ✿◉•◦
13
📱 Open ai پس از انتشار مدل جدید یعنی GPT 5 تصمیم به حذف تمام مدل های قدیمی خود گرفته تا بتواند تمام تمرکز خود را بر روی این مدل بگذارد .

به زبان ساده: چند مدل قبلی ChatGPT—مثل GPT‑4، GPT‑4.5، o1، o3 و مدل‌های mini/compact—دیگر در دسترس نیستند چون OpenAI از امروز، ۷ اوت ۲۰۲۵ تنها روی مدل جدید و واحد خود یعنی GPT‑5 متمرکز شده است.

⚠️ دلیل غیرفعال‌ شدن سایر مدل‌ها:

یکپارچه‌سازی و ساده‌سازی تجربه‌ی کاربر
OpenAI با معرفی GPT‑5 تصمیم گرفته تجربه‌ی استفاده را ساده کند: دیگر نیازی نیست بین مدل‌ها انتخاب کنید؛ سیستم هوشمند به‌صورت خودکار بر اساس پیچیدگی و نوع درخواست، مناسب‌ترین نسخه (مانند GPT‑5 standard یا mini) را انتخاب می‌کند.

جایگزینی مدل‌های قدیمی با یک مدل پیشرفته‌تر و قدرتمندتر
تمامی قابلیت‌های مدل‌های قبلی—مثل توانایی‌های reasoning، مولتی‌مدالیتی، و گزینه‌های مختلف—در GPT‑5 تجمیع شده‌اند. به‌عبارتی، مدل‌های دیگر حذف شده‌اند چون همه چیز در قالب GPT‑5 عرضه می‌شود.

🔼وضعیت دسترسی برای کاربران مختلف:

کاربران رایگان
به نسخه‌ی اصلی GPT‑5 و نسخه‌ی سبک‌تر یعنی GPT‑5 mini دسترسی دارند، البته با محدودیت استفاده.

کاربران Plus و Pro
علاوه بر مدل‌های اصلی، دسترسی به نسخه‌هایی چون GPT‑5 Pro و GPT‑5 Thinking برای پردازش‌های پیچیده‌تر فراهم شده است. همچنین، کاربران Pro ممکن است حق انتخاب مدل‌های قدیمی‌تر را هم داشته باشند.

فعالسازی این مدل جدید برای تمام مشترکین سراسر جهان ممکن است بین 24 تا 48 ساعت زمان ببرد ، پس در صورتی که هنوز به این مدل دسترسی ندارید، صبور باشید .
👍2
🔄 نکته: Generatorها در مقابل Listها

🔹 در واقع Generatorها حافظه نمی‌گیرن تا زمانی که واقعاً ازشون مقدار بخوای

gen = (x**2 for x in range(10**6))


درحالی‌که لیست، همه رو همون اول می‌سازه.
برای کار با داده‌های بزرگ، generatorها حیاتی‌ان ⚡️


🐍 @python_rd
👍8
ترفند جمع کردن دیکشنری‌ها

🔹 از پایتون 3.9 به بعد می‌تونی دیکشنری‌ها رو با عملگر | ترکیب کنی:

a = {'x': 1}; b = {'y': 2}
merged = a | b


🐍 @python_rd
🔥5
🔸 خروجی غیرمنتظره😵‍💫

میدونستید که NaN با خودش هم برابر نیست؟!!!

import math
nan = float('nan')
print(nan == nan) # False
print(math.isnan(nan)) # True



🔎 طبق استاندارد IEEE-754، NaN با هیچ‌چیز برابر نیست—even خودش.


🐍 @python_rd
🪞 نکته Reflection و بازرسی (Introspection)

🔸‌ در پایتون می‌تونی بفهمی یه تابع دقیقاً چه پارامترهایی داره:


import inspect
print(inspect.signature(len))


یا حتی داک‌استرینگش رو بخونی😎

این قابلیت باعث شده ابزارهایی مثل FastAPI یا Typer بتونن از type hintها به صورت خودکار API بسازن🔥


🐍 @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
2
🔸 مقایسه is و ==

🔹 تفاوتشون مهمه!
== مقادیر رو مقایسه می‌کنه، ولی is بررسی می‌کنه دو متغیر دقیقاً به یک شیء در حافظه اشاره می‌کنن یا نه.

a = [1, 2]; b = [1, 2]
print(a == b) # True
print(a is b) # False


🐍 @python_rd
🔥2
🔸 استفاده از ( )enumerate

🔹 وقتی توی یه حلقه هم به اندیس نیاز داری هم به مقدار، از enumerate استفاده کن

for i, value in enumerate(['a', 'b', 'c']):
print(i, value)


دیگه نیازی به range(len(...)) نداری!


🐍 @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