0Pricing
Learn AI with Python · درس

Generators

افهموا Generators واستخدامها لإنشاء Iterators

Generators درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 5 دروس في المجموع.

مقدمة إلى المولّدات

مقدمة إلى المولّدات

المولّدات نوع خاص من المكرّرات في Python، وتتيح لك التكرار على البيانات بطريقة كسولة. وبدلًا من إرجاع جميع البيانات دفعة واحدة، تُنتج عنصرًا واحدًا في كل مرة، مما يجعلها فعّالة من حيث استخدام الذاكرة.

في هذا الدرس، ستتعلّم كيفية إنشاء المولّدات واستخدامها في Python.

Generators — رسم توضيحي 1

ما المقصود بالمولّد؟

ما المقصود بالمولّد؟

المولّد هو دالة تستخدم الكلمة المفتاحية yield لإرجاع القيم واحدةً تلو الأخرى. ويستأنف كل استدعاء للطريقة next() الخاصة بالمولّد التنفيذ من الموضع الذي أرجع فيه المولّد قيمةً آخر مرة.

# Basic generator example
def my_generator():
    yield 1
    yield 2
    yield 3

# Using the generator
gen = my_generator()
print(next(gen))  # Outputs: 1
print(next(gen))  # Outputs: 2
print(next(gen))  # Outputs: 3

كيف تعمل المولّدات

كيف تعمل المولّدات

تحفظ المولّدات حالة الدالة، لذا يمكنها استئناف التنفيذ من الموضع الذي توقفت عنده بالضبط. وهذا يجعلها فعّالة من حيث استخدام الذاكرة ومثالية لمجموعات البيانات الكبيرة.

# Example: Generating a range of numbers
def range_generator(start, end):
    while start < end:
        yield start
        start += 1

for number in range_generator(1, 5):
    print(number)  # Outputs: 1, 2, 3, 4

تعبيرات المولّدات

تعبيرات المولّدات

تشبه تعبيرات المولّدات استيعاب القوائم، لكنها تستخدم الأقواس الدائرية بدلًا من الأقواس المربعة. وهي تنشئ مولّدات بدلًا من القوائم.

# Generator expression
gen_exp = (x * x for x in range(5))

for value in gen_exp:
    print(value)  # Outputs: 0, 1, 4, 9, 16

المولّدات مقارنةً بالقوائم

المولّدات مقارنةً بالقوائم

تستهلك المولّدات ذاكرة أقل من القوائم لأنها لا تخزّن جميع البيانات في الذاكرة، بل تُنشئ البيانات عند الحاجة.

# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]

# Generator expression
gen_exp = (x * x for x in range(1000000))

# List comprehension uses more memory
print(type(list_comp))  # Outputs: <class 'list'>
print(type(gen_exp))    # Outputs: <class 'generator'>

حالات استخدام المولّدات

حالات استخدام المولّدات

تُعد المولّدات مثالية من أجل:

  • معالجة مجموعات البيانات الكبيرة التي لا تتسع لها الذاكرة.
  • إنشاء متتاليات لا نهائية.
  • التقييم الكسول للبيانات.

المولّدات اللانهائية

المولّدات اللانهائية

يمكن للمولّدات إنتاج متتاليات لا نهائية، مثل متتالية لا تنتهي من الأرقام. احرص على إيقاف الحلقة لتجنّب التنفيذ اللانهائي.

# Infinite generator example
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

# Using the infinite generator
for i in infinite_sequence():
    if i > 5:
        break
    print(i)  # Outputs: 0, 1, 2, 3, 4, 5

الدوال المولّدة ذات عمليات yield متعددة

الدوال المولّدة ذات عمليات yield متعددة

يمكن أن تتضمن الدوال المولّدة عدة تعليمات yield، مما يتيح لك إنشاء متتاليات معقّدة:

# Multiple yields in a generator
def multi_yield():
    yield "First"
    yield "Second"
    yield "Third"

for value in multi_yield():
    print(value)  # Outputs: First, Second, Third

الأخطاء الشائعة في استخدام المولّدات

الأخطاء الشائعة في استخدام المولّدات

إليك بعض الأخطاء التي ينبغي تجنّبها:

  • استخدام return بدلًا من yield في دالة مولّدة.
  • عدم استهلاك المولّد باستخدام حلقة أو next().
  • استخدام المولّدات مع مجموعات البيانات الصغيرة التي تكون القوائم أنسب لها.

ما الذي تعلمناه؟

ما الذي تعلمناه؟

في هذا الدرس، تعلمتم ما يلي:

  • ما المولدات وكيف تعمل في Python.
  • كيفية استخدام yield لإنشاء دوال مولِّدة.
  • الاختلافات بين المولدات والقوائم.
  • حالات استخدام المولدات، مثل التسلسلات اللانهائية ومجموعات البيانات الكبيرة.

أحسنتم! لننتقل إلى الموضوع التالي.

Generators — رسم توضيحي 11

الأسئلة الشائعة

هل درس «Generators» مجاني؟

نعم — نص درس «Generators» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 5 دروس في المجموع.

ماذا ستتعلم في «Generators»؟

افهموا Generators واستخدامها لإنشاء Iterators تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 5.

كم من الوقت يستغرق درس «Generators»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Decorators
  2. Generators
  3. Context Managers ‏(عبارات with)
  4. Comprehensions ‏(القوائم والمجموعات والقواميس)
  5. Iterators وIterables
← العودة إلى Learn AI with Python