⭐️ نکات ریز و ترفندهای حرفه‌ای 1️⃣ بهینه بودن ()range: تابع ()range یه شیء تنبل تولید می‌کنه که حافظه کمی مصرف می‌کنه، چون اعداد رو یکی‌یکی می‌سازه. import sys print(sys.getsizeof(range(1000000))) # ~48 bytes print(sys.getsizeof(list(range(1000000)))) # ~9000000 bytes 2️⃣ استفاده از step منفی برای دنباله‌های نزولی: برای ساخت دنباله معکوس، step باید منفی باشه و start از stop بزرگ‌تر: for num in range(5, 0, -1): print(num) # Khoroji: 5, 4, 3, 2, 1 3️⃣ ترکیب با List Comprehension: برای ساخت فهرست‌های پیچیده‌تر: squares = [x**2 for x in range(1, 6)] print(squares) # Khoroji: [1, 4, 9, 16, 25] 4️⃣ مدیریت خطاها: اگه step صفر باشه یا بازه نامعتبر باشه، ارور می‌گیره: try: list(range(1, 5, 0)) except ValueError: print("Step ghalat! 🚫") # Khoroji: Step ghalat! 5️⃣ استفاده تو حلقه‌های while: هرچند کمتر رایجه، ولی می‌تونی ()range رو تو while استفاده کنی: i = 0 r = range(5) while i < len(r): print(r[i]) i += 1 # Khoroji: 0, 1, 2, 3, 4 6️⃣ ترکیب با توابع داخلی: دقت کن ()range با sum، min، max و غیره برای محاسبات سریع عالیه: numbers = range(1, 6) print(sum(numbers)) # Khoroji: 15 print(max(numbers)) # Khoroji: 5 print(min(numbers)) # Khoroji: 1 7️⃣ پیمایش معکوس با ()reversed: به جای step منفی، می‌تونی از reversed(range()) استفاده کنی: for num in reversed(range(1, 6)): print(num) # Khoroji: 5, 4, 3, 2, 1 8️⃣ دسترسی به ایندکس‌ها: تابع ()range می‌تونه برای دسترسی به ایندکس‌های خاص تو فهرست‌ها استفاده بشه: numbers = ["a", "b", "c", "d"] for i in range(1, len(numbers), 2): print(numbers[i]) # Khoroji: b, d 💯 @PythonForYou 🧑‍💻👩‍💻