التخيير

الجملة الشرطية

يتم التخيير المذكور آنفًا بالجملة الشرطية:

  • فتبدأ الجملة الشرطية بكلمة if (إذا) ويليها التعبير المنطقي (كما سبق بيانه)
    • فيكون ما يندرج تحتها (بالمسافة) الأوامر المتعلقة بنفاذ الشرط (True).
      فإن انتفى الشرط (False) فإن بايثون تتخطى هذه الأوامر وتقفز لما بعدها.
      وبالمثال يتضح المقال:

لاحظ أن الشرط منتفٍ، لذلك كان حاصل النص السابق تخطي ما بداخل الجملة الشرطية، وطباعة Outside فقط.

المسافة البادئة

لاحظ أن المسافة البادئة (Indentation) (أي: المسافات من بداية السطر حتى يُدرج الكلام أسفل كلمة if) في القطعة البرمجية أعلاه ليست لمجرد تسهيل القراءة، بل تُفسَّرُ الجُملةُ أنها في الداخل أو الخارج بناءً على وجودها وعدمها. فهي التي تضع الحدود حول المشروط. ويجب أن تكون محاذية فإذا كان مقدارها 4 مسافات أو 2 أو أكثر، فوجب أن تكون جميع الجُمَل بنفس المقدار. وهذا ما نسميه المحاذاة.
لاحظ: أن خلو الشرط من جُمَل مشروطة به يُفرِز تنبيهًا للمبرمج عند تفسير النص البرمجي:

إذا قمت بزيادة المحاذاة لكل من جملتي print()، فسوف يعمل النص البرمجي بتدفِّقٍ غيرِ الذي قصدناه ابتداءً. أي أنه سيطبع Outside عندما يكون في الواقع داخل اللَّبِنَة الشرطية.

يؤدي النص البرمجي السابق إلى خطأ منطقي (لا نحوي) لن يظهر أبدًا كخطأ ولن يوقف البرنامج!

ملاحظة: لا تنسَ ضبط المحاذاة عندما تكتب بايثون؛ فربما سببت لك أخطاء إما إملائية أو حتى منطقية.

التخيير الحصري

لجعل التخيير بين أمرين بحيث لو حصل أحدهما لا يحصل الآخر، فإننا نتبع الشرط الأوَّل بكلمة وإلا (else)،
على النحو التالي:

مثلاً، تريد أن تظهر رسالة خطأ لو لم تطابق كلمة المرور:

وهذه الشجرة توضح تسلسل التنفيذ الإجرائي لها:

ولاحظ أن print(msg) غير مشروطة، لذلك فإنها مع نفوذ الشرط أو عدمه يتم تنفيذها.