TGViewer
PyCoders (پایتون) PyCoders (پایتون) @python_rd · 4.1K subscribers
Post #2136 632
🔆 آشنایی با عملگر والروس (:=)

🔹عملگر := (که به خاطر شباهتش به چشمان و عاج‌های والروس، Walrus Operator نامیده میشه) از پایتون ۳.۸ معرفی شد. کار اصلیش اینه که به شما اجازه میده همزمان با مقداردهی متغیر، از اون استفاده هم بکنید (Assignment Expressions).

🔹این کار باعث میشه کد شما کوتاه‌تر، خواناتر و بهینه‌تر بشه.

🔹 کد بدون Walrus Operator (روش قدیمی):
data = [1, 2, 3, 4, 5]
n = len(data)

if n > 3:
print(f"تعداد عناصر زیاد است: {n}")

🔹 کد با Walrus Operator (روش حرفه‌ای):
data = [1, 2, 3, 4, 5]

# تعریف متغیر n دقیقاً داخل شرط if!
if (n := len(data)) > 3:
print(f"تعداد عناصر زیاد است: {n}")

🔹 یک کاربرد واقعی و عالی در حلقه while:

فرض کنید می‌خواهید ورودی کاربر را تا زمان نوشتن کلمه exit دریافت کنید:
# روش تمیز و مدرن با Walrus
while (user_input := input("یک کلمه وارد کنید: ")) != "exit":
print(f"شما وارد کردید: {user_input}")

🔹 چه زمانی استفاده کنیم؟

* وقتی می‌خواید از محاسبه مجدد یک مقدار سنگین جلوگیری کنید.
* وقتی می‌خواید کدهای تکراری در شرط‌های if و حلقه‌های while رو کاهش بدی.
🐍 @python_rd
  • ❤ 3
  • 👍 2
More from @python_rd
  1. Oct 15, 2026🔆 آیا enumerate() بهتر از index-based loop است؟ 🔹 خیلی‌ها هنوز این شکلی می‌نویسند: items…
  2. Oct 15, 2026🔆 یک تله عجیب در پایتون: bool در واقع زیرکلاس int است 🔹 خیلی‌ها می‌دانند True == 1 و Fal…
  3. Oct 13, 2026کوییز پایتون 🔆 خروجی اجرای کد زیر چیست؟ t = (1, 2, [3, 4]) try: t[2] += [5] except TypeEr…
  4. Oct 13, 2026🔆 راز مکانیزم پیاده‌سازی و تغییر جهت NaN در الگوریتم مرتب‌سازی پایتون (Timsort) 🔹 باگ ری…
  5. Oct 13, 2026🔆 حذف تاریخی GIL از پایتون (Free-threaded Python) 🔹 یک رویداد تاریخی: حذف قفل مفسر (GIL)…
  6. Oct 11, 2026🔆 مدیریت تمیز منابع با Context Managerهای سفارشی (contextlib) 🔹 ساخت Context Managerها م…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →