0Pricing
Python Academy · درس

الحلقات المتداخلة وأنماط الحلقات

ادمج الحلقات المتداخلة لإنشاء الشبكات والأنماط وإجراء التجميع

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

مقدمة

يتيح الجمع بين الحلقات تطبيق أنماط مثل اجتياز المصفوفات، والبحث متعدد المستويات، وتوليد التركيبات.

حلقة متداخلة أساسية

تتكون من حلقتي for: تنفذ الحلقة الخارجية N مرة، وتنفذ الداخلية M مرة في كل تكرار خارجي، أي بإجمالي N*M تكرارًا.
for i in range(3):
    for j in range(3):
        print(i, j)

جدول الضرب

تنتج الحلقات المتداخلة الجداول بصورة طبيعية. تمثل الحلقة الخارجية الصف، وتمثل الداخلية العمود.
for i in range(1, 4):
    for j in range(1, 4):
        print(f'{i*j:3}', end='')
    print()

نمط المثلث

اطبعوا * بعدد i من المرات في كل صف: `for i in range(1,6): print('*'*i)`. يوضح ذلك كيف يعتمد عدد التكرارات الداخلية على الحلقة الخارجية.
for i in range(1, 6):
    print('*' * i)

اجتياز المصفوفة

تُعد الحلقات المتداخلة الطريقة القياسية لزيارة كل خلية في قائمة ثنائية الأبعاد.
matrix = [[1,2,3],[4,5,6]]
for row in matrix:
    for val in row:
        print(val, end=' ')
    print()

نمط التجميع

لجمع جميع العناصر: `total = 0; for row in matrix: for v in row: total += v`
matrix = [[1,2],[3,4]]
total = sum(v for row in matrix for v in row)
print(total)

العثور على العناصر

ابحثوا عن قيمة في قائمة ثنائية الأبعاد وسجلوا موضعها باستخدام حلقة متداخلة.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        if val == 5:
            print(f'Found at ({i},{j})')

تركيبات من دون تكرار

ينتج `for i in range(n): for j in range(i+1, n):` جميع الأزواج الفريدة من قائمة.
items = ['a','b','c']
for i in range(len(items)):
    for j in range(i+1, len(items)):
        print(items[i], items[j])

كفاءة الحلقات المتداخلة

يشيع التعقيد O(n^2) في الحلقات المتداخلة. وإذا استخدمت الحلقة الداخلية بحثًا في dict بدلًا من فحص قائمة، فيمكنكم خفضه إلى O(n).
# Efficient: use a set for inner lookup
data = {1, 2, 3, 4}
result = [x for x in range(10) if x in data]  # O(n)
print(result)

التسطيح باستخدام comprehension متداخلة

يُعد `[x for row in matrix for x in row]` تعبير comprehension متداخلًا ومسطحًا. اقرأوه من اليسار إلى اليمين: الحلقة الخارجية أولًا.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

الخروج من الحلقات المتداخلة

استخدموا علامة، أو ضعوا الحلقات داخل دالة واستخدموا return للخروج من عدة مستويات بطريقة واضحة.
def find_in_matrix(matrix, target):
    for i, row in enumerate(matrix):
        for j, val in enumerate(row):
            if val == target:
                return (i, j)
    return None
print(find_in_matrix([[1,2],[3,4]], 3))

تحقق سريع

ما العدد الإجمالي للتكرارات في حلقتين متداخلتين تستخدمان range(4) وrange(3)؟

مراجعة

في الحلقات المتداخلة، يكون العدد الإجمالي للتكرارات N*M. استخدموها لأنماط التكرار، واجتياز المصفوفات، وإنشاء التركيبات. سوّوا القوائم باستخدام comprehension، واخرجوا باستخدام return أو علامة.

تابعوا التقدم

أحسنتم! انتقلوا إلى الدرس التالي لمواصلة تطوير مهاراتكم.

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

هل درس «الحلقات المتداخلة وأنماط الحلقات» مجاني؟

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

ماذا ستتعلم في «الحلقات المتداخلة وأنماط الحلقات»؟

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

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

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

كم من الوقت يستغرق درس «الحلقات المتداخلة وأنماط الحلقات»؟

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

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

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

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

  1. عبارات if / elif / else
  2. حلقات for وrange()
  3. حلقات while والتحكم في الحلقات
  4. الحلقات المتداخلة وأنماط الحلقات
← العودة إلى Python Academy