0%
هياكل التحكم في Python: الشروط والحلقات التكرارية

هياكل التحكم

تحكّم في تدفق تنفيذ برامجك

10-15 دقيقة

هياكل التحكم في Python: الشروط والحلقات التكرارية

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

العبارات الشرطية (if, elif, else)

تتيح العبارات الشرطية تنفيذ الشيفرة فقط عند تحقق شروط معينة. وتوفّر Python عدة أشكال من العبارات الشرطية.

عبارة if البسيطة

أبسط شكل هو عبارة if متبوعة بشرط:

age = 18

if age >= 18:
    print("Vous êtes majeur.")

في هذا المثال، لن تظهر الرسالة إلا إذا كان العمر أكبر من أو يساوي 18.

عبارة if-else

لتنفيذ كتلة شيفرة بديلة عندما لا يتحقق الشرط، نستخدم else:

age = 16

if age >= 18:
    print("Vous êtes majeur.")
else:
    print("Vous êtes mineur.")

عبارة if-elif-else

لاختبار عدة شروط بالتتابع، نستخدم elif (اختصار لـ “else if”):

score = 75

if score >= 90:
    print("Excellent !")
elif score >= 80:
    print("Très bien !")
elif score >= 70:
    print("Bien.")
elif score >= 60:
    print("Passable.")
else:
    print("Besoin d'amélioration.")

تقيّم Python الشروط بالترتيب وتنفّذ كتلة الشيفرة المقابلة لأول شرط متحقق.

التعبيرات الشرطية (العامل الثلاثي)

توفّر Python صيغة مختصرة للتعبيرات الشرطية البسيطة:

age = 20
statut = "majeur" if age >= 18 else "mineur"
print(f"Vous êtes {statut}.")

يعادل هذا التعبير عبارة if-else الكاملة.

الحلقات التكرارية

تتيح الحلقات التكرارية تنفيذ كتلة شيفرة عدة مرات. وتوفّر Python نوعين رئيسيين من الحلقات: for وwhile.

حلقة for

تُستخدم حلقة for في Python للتكرار على متسلسلة (قائمة، أو tuple، أو قاموس، أو مجموعة، أو سلسلة نصية):

# Itération sur une liste
fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
    print(f"J'aime les {fruit}s.")

# Itération sur une plage de nombres
for i in range(5):  # 0, 1, 2, 3, 4
    print(i)

# Itération avec index
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

تُستخدم الدالة range() كثيرًا مع حلقات for لتوليد متسلسلات من الأعداد.

حلقة while

تنفّذ حلقة while كتلة شيفرة ما دام الشرط متحققًا:

compteur = 0

while compteur < 5:
    print(f"Compteur: {compteur}")
    compteur += 1

من المهم التأكد من أن شرط حلقة while سيصبح غير متحقق في لحظة ما لتجنّب الحلقات اللانهائية.

عبارات التحكم في الحلقات

توفّر Python عبارات خاصة لتعديل سلوك الحلقات.

break

تتيح عبارة break الخروج من الحلقة فورًا:

for i in range(10):
    if i == 5:
        break
    print(i)  # Affiche 0, 1, 2, 3, 4

continue

تنتقل عبارة continue إلى التكرار التالي من الحلقة:

for i in range(10):
    if i % 2 == 0:  # Si i est pair
        continue
    print(i)  # Affiche uniquement les nombres impairs : 1, 3, 5, 7, 9

else مع الحلقات

ميزة قليلة المعرفة لكنها مفيدة جدًا: يمكن أن تحتوي حلقتا for وwhile على جملة else تُنفَّذ عندما تنتهي الحلقة بصورة طبيعية (دون break):

for i in range(5):
    print(i)
else:
    print("Boucle terminée normalement")

# Avec break
for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("Ce message ne sera pas affiché")

الاشتمالات القائمية (List Comprehensions)

توفّر الاشتمالات القائمية صيغة موجزة لإنشاء قوائم استنادًا إلى متسلسلات موجودة:

# Créer une liste des carrés des nombres de 0 à 9
carres = [x**2 for x in range(10)]
print(carres)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Avec condition
pairs = [x for x in range(10) if x % 2 == 0]
print(pairs)  # [0, 2, 4, 6, 8]

يمكن استخدام هذه الصيغة أيضًا مع القواميس والمجموعات.

أفضل الممارسات

فيما يلي بعض النصائح لاستخدام هياكل التحكم بفعالية:

  1. المسافة البادئة (Indentation): في Python، المسافة البادئة ليست مجرد مسألة أسلوب، بل هي التي تحدد بنية الشيفرة. حافظ على اتساقها (يُنصح باستخدام 4 مسافات لكل مستوى).

  2. تجنّب التداخل المفرط: كثرة مستويات التداخل تجعل الشيفرة صعبة القراءة. حاول إعادة هيكلة شيفرتك أو استخدام الدوال لتقليل التعقيد.

  3. استخدم أسماء ذات دلالة لمتغيرات الحلقات متى كان ذلك مناسبًا.

  4. فضّل الاشتمالات القائمية على حلقات for التقليدية في عمليات تحويل البيانات البسيطة.

الخاتمة

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

في الدرس القادم، سنستكشف البرمجة كائنية التوجه في Python، التي ستتيح لك تنظيم شيفرتك بصورة أكثر فعالية ونمطية.

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!