تعلم البرمجة بلغة بايثون - الدرس الثالث عشر: الشروط في بايثون: الشروط المتداخلة و else
في هذا الدرس من سلسلة “تعلم البرمجة من الصفر بلغة بايثون” سنكمل حديثنا عن الشروط في بايثون ونتعرف على الشروط المتداخلة وكلمة else المهمة في الشروط مع أمثلة مفصلة.
الجمل الشرطية المتداخلة
هل يمكن أن نكتب جملة شرطية داخل جملة شرطية أخرى في بايثون؟ نعم بالطبع. لنر مثالاً على ذلك:
x = 12
if x > 3:
print('Larger than 3')
if x < 19:
print('Less than 19')
print('All done')
هنا في البداية نسأل هل x
أكبر من 3؟ ولأننا وضعنا 12 في x
فإن جواب هذا الشرط سيكون True وسيتم تنفيذ أول جملة تابعة لهذا الشرط وهي طباعة "Larger than 3"
ثم يتم تنفيذ الجملة الثانية التابعة للشرط وهي جملة شرطية أخرى نسأل فيها هل x
أقل من 19 وبالطبع سيكون الجواب True أيضاً لأن قيمة x
هي 12 وبالتالي سيتم تنفيذ الجملة التابعة لهذا الشرط الثاني والتي ستطبع "Less than 19"
ثم نخرج من الجملة الشرطية الثانية والأولى لنواجه جملة الطباعة والتي ستطبع "All done"
.
انتبه للانزياحات في هذا المثال. المخطط التالي يعرض رسماً لكيفية تنفيذ هذا البرنامج:
تنفيذ تعليمات عندما لا يتحقق الشرط (باستخدام else)
لنفترض أن لدينا شرطاً وأن لدينا مجموعة تعليمات نريد تنفيذها إذا تحقق هذا الشرط مثل ما رأينا في الأمثلة السابقة. ولكن ماذا لو أردنا أن ننفذ مجموعة أخرى من التعليمات في حال لم يتحقق الشرط؟ كيف نفعل ذلك في بايثون؟ نفعل ذلك باستخدام else
. انظر للمثال التالي:
x = 5
if x > 7:
print('أكبر من 7')
بناء على ما تعلمناه فإن هذا البرنامج لن يطبع شيئاً لعدم تحقق الشرط، والآن إذا أضفنا else
للمثال كما يلي:
x = 5
if x > 7:
print('أكبر من 7')
else:
print('ليس أكبر من 7')
فإن البرنامج سيطبع "ليس أكبر من 7"
لأن الشرط لم يتحقق فانتقلنا إلى الجملة التابعة لـ else
والتي يتم الانتقال إليها عند عدم تحقق الشرط.
الرسم التخطيطي التالي يوضح أكثر كيفية سير البرنامج السابق:
يمكن تشبيه سير البرنامج مع if
و else
بمفترق طرق: إما أن تذهب في طريق if
وتنفذ الجمل التابعة لها أو تذهب في طريق else
وتنفذ الجمل التابعة لها. فعندما تستخدم if
و else
فإن واحداً منهما فقط سيتم تنفيذ الجمل التابعة له.
وانتبه إلى أن كل else
لا بد أن يكون هناك if
قبلها فكل else
تتعلق بـ if
ولكن من الممكن أن نرى if
بدون else
كما رأينا في الأمثلة السابقة.