شرح جمل if و else و elif في بايثون: أساسيات العبارات الشرطية للمبتدئين

دقائق القراءة: 5
شرح العبارات الشرطية في لغة بايثون والتحكم في تدفق تنفيذ الأوامر البرمجية

ما هي العبارات الشرطية في بايثون؟

في كثير من البرامج، لا نريد تنفيذ جميع الأسطر البرمجية بالطريقة نفسها في كل مرة. أحيانًا نحتاج إلى تشغيل جزء معين من الكود فقط عند تحقق شرط محدد، وفي حالات أخرى نرغب في تنفيذ مسار مختلف عندما لا يتحقق ذلك الشرط. هنا تظهر أهمية العبارات الشرطية في لغة Python.

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

في هذا المقال، ستتعرف على أساسيات استخدام if وif...else وelif في Python، مع أمثلة عملية توضح طريقة العمل الصحيحة.

الصيغة الأساسية لجملة if في بايثون

تعبّر جملة if عن الفكرة التالية: إذا كان الشرط صحيحًا، نفّذ الكود المرتبط به. وإذا لم يكن صحيحًا، فلا تنفّذ هذا الجزء من الكود.

الصيغة العامة

if condition:
    execute_statement

مم تتكوّن جملة if؟

  • الكلمة المفتاحية if التي تبدأ الجملة الشرطية.
  • شرط يمكن أن تكون نتيجته True أو False.
  • علامة النقطتين الرأسيتين : للفصل بين الشرط والكود الذي سيتم تنفيذه.
  • سطر جديد مع مسافة بادئة، وغالبًا تكون 4 مسافات وفقًا للعرف الشائع في Python.
  • جسم الجملة، وهو الكود الذي يعمل فقط إذا كانت نتيجة الشرط True.

ويمكن أن يحتوي جسم الجملة على أكثر من سطر، لكن يجب الحفاظ على المستوى نفسه من indentation لكل سطر داخل الكتلة البرمجية.

مثال عملي على if

a = 1
b = 2

if b > a:
    print("b is in fact bigger than a")

الناتج سيكون:

b is in fact bigger than a

في هذا المثال أنشأنا المتغيرين a وb، وأسنَدنا إليهما القيمتين 1 و2. وبما أن الشرط b > a صحيح، فقد تم تنفيذ السطر الموجود داخل جملة if.

أما إذا كان الشرط غير صحيح، فلن يُنفَّذ شيء:

a = 1
b = 2

if a > b:
    print("a is in fact bigger than b")

في هذه الحالة لن يظهر أي ناتج، لأن الشرط a > b غير متحقق.

كيف تعمل جملة if...else في بايثون؟

عندما تستخدم if فقط، فإن الكود يعمل عند تحقق الشرط، ولا يحدث شيء عند عدم تحققه. لكن ماذا لو أردت تنفيذ كود بديل عندما تكون النتيجة False؟ هنا نستخدم else.

الصيغة العامة

if condition:
    execute_statement_if_true
else:
    execute_statement_if_false

المعنى هنا واضح: إذا تحقق الشرط الموجود بعد if، يُنفَّذ الكود الأول. وإذا لم يتحقق، ينتقل البرنامج مباشرة إلى الكود الموجود داخل else.

مثال على if...else

a = 1
b = 2

if a < b:
    print("b is in fact bigger than a")
else:
    print("a is in fact bigger than b")

في هذا المثال، الشرط a < b صحيح، لذا سيتم تنفيذ السطر الأول فقط، ولن يصل البرنامج إلى كتلة else.

أما إذا انعكس الشرط:

a = 1
b = 2

if a > b:
    print("a is in fact bigger than b")
else:
    print("b is in fact bigger than a")

فسيكون الناتج:

b is in fact bigger than a

ملاحظة مهمة حول موضع else

لا يمكنك وضع أي سطر برمجي بين if وelse خارج الكتلة المحددة، لأن ذلك يؤدي إلى ظهور خطأ من نوع SyntaxError.

if 1 > 2:
    print("1 is bigger than 2")
print("hello world")
else:
    print("1 is less than 2")

الناتج:

File "<stdin>", line 3
    print("hello world")
    ^
SyntaxError: invalid syntax

السبب هو أن else يجب أن تكون مرتبطة مباشرةً بجملة if نفسها.

ما وظيفة elif في بايثون؟

في بعض الحالات، لا يكون لدينا خياران فقط. قد نحتاج إلى اختبار عدة احتمالات بالتتابع. وهنا يأتي دور elif، وهي اختصار لعبارة else if.

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

الصيغة العامة

if first_condition:
    execute_statement
elif second_condition:
    execute_statement
else:
    alternative_execute_statement

مثال عملي على elif

x = 1

if x > 10:
    print("x is greater than 10!")
elif x < 10:
    print("x is less than 10!")
elif x < 20:
    print("x is less than 20!")
else:
    print("x is equal to 10")

الناتج:

x is less than 10!

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

ترتيب شروط elif مهم جدًا

ترتيب الشروط ليس تفصيلًا شكليًا، بل يؤثر مباشرةً في النتيجة النهائية. انظر إلى المثال التالي:

x = 1

if x > 10:
    print("x is greater than 10!")
elif x < 20:
    print("x is less than 20!")
elif x < 10:
    print("x is less than 10!")
else:
    print("x is equal to 10")

في هذه الحالة، سيتم تنفيذ السطر الذي يطبع x is less than 20! لأن الشرط x < 20 تحقق أولًا، ولن يصل البرنامج إلى الشرط الذي يليه، رغم أنه صحيح أيضًا.

لذلك، عند كتابة سلاسل من elif، ابدأ عادةً بالشروط الأكثر تحديدًا أو الأكثر أهمية، ثم انتقل إلى الشروط الأوسع.

متى يتم تنفيذ else مع elif؟

تُنفَّذ كتلة else فقط إذا فشلت جميع الشروط السابقة في if وelif.

x = 10

if x > 10:
    print("x is greater than 10!")
elif x < 10:
    print("x is less than 10!")
elif x > 20:
    print("x is greater than 20!")
else:
    print("x is equal to 10")

الناتج:

x is equal to 10

أفضل الممارسات عند كتابة الشروط في Python

  • اكتب الشروط بوضوح وتجنب التعقيد غير الضروري.
  • احرص على استخدام indentation بشكل صحيح، لأن Python تعتمد عليه لتحديد الكتل البرمجية.
  • رتّب شروط elif منطقياً حتى لا يتم استهلاك حالة عامة قبل حالة أكثر دقة.
  • استخدم else كخيار نهائي لمعالجة الحالات غير المتوقعة أو الافتراضية.
  • اختبر الشروط بأكثر من قيمة للتأكد من أن جميع المسارات تعمل كما تتوقع.

مقارنة سريعة بين if وif...else وelif

البنية الاستخدام متى تناسبك؟
if تنفيذ كود عند تحقق شرط واحد عندما لا تحتاج إلى مسار بديل
if...else الاختيار بين مسارين عندما تريد نتيجة عند تحقق الشرط وأخرى عند فشله
if...elif...else معالجة عدة احتمالات عندما توجد أكثر من حالة محتملة

لماذا تعد العبارات الشرطية أساسية في البرمجة؟

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

ومع تقدمك في تعلم Python، ستجد أن العبارات الشرطية لا تُستخدم فقط بصيغتها البسيطة، بل يمكن أيضًا دمجها داخل حلقات التكرار أو حتى تضمينها داخل عبارات شرطية أخرى فيما يُعرف باسم nested conditionals.

الخلاصة التقنية

تُعد جمل if وelse وelif من أهم الأدوات لبناء منطق اتخاذ القرار في Python. الفهم الجيد لها لا يساعدك فقط على كتابة كود صحيح، بل يمنحك قدرة أكبر على تنظيم الحالات المختلفة داخل البرنامج بطريقة واضحة وقابلة للتوسع. وكلما أتقنت ترتيب الشروط واستخدام المسافات البادئة بدقة، أصبحت برامجك أكثر احترافية وأسهل في الصيانة والتطوير.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *