5️⃣ مثال‌های کاربردی 🔸 تولید اعداد اول: def is_prime(n): if n < 2: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True def prime_generator(limit): for num in range(limit): if is_prime(num): yield num for prime in prime_generator(20): print(prime) # Khoroji: 2, 3, 5, 7, 11, 13, 17, 19 🔸 ژنراتور برای داده‌های بزرگ: def large_data_generator(): for i in range(1000000): yield i * 2 gen = large_data_generator() for _ in range(5): print(next(gen)) # Khoroji: 0, 2, 4, 6, 8 🔸 فیلتر کردن با ژنراتور: numbers = [1, 2, 3, 4, 5, 6] odds_gen = (x for x in numbers if x % 2 != 0) print(list(odds_gen)) # Khoroji: [1, 3, 5] —-—-—-—-—-—-—-—-—-—-— 6️⃣ نکات حرفه‌ای 🔸 صرفه‌جویی در حافظه: همیشه ژنراتورها رو به فهرست ترجیح بده برای داده‌های بزرگ، مگر اینکه واقعاً به فهرست نیاز داشته باشی. 🔸 خوانایی کد: اسم‌های معنی‌دار برای ژنراتورها انتخاب کن (مثل evens_gen به جای g). 🔸 ترکیب با itertools: برای کارهای پیچیده‌تر، از ماژول itertools استفاده کن: from itertools import islice gen = (x**2 for x in range(100)) print(list(islice(gen, 5))) # Khoroji: [0, 1, 4, 9, 16] 🔸 مدیریت پایان ژنراتور: همیشه آماده خطای StopIteration باش یا از حلقه for استفاده کن که خودش این خطا رو مدیریت می‌کنه. 💯 @PythonForYou 🧑‍💻👩‍💻