تعلم البرمجة بلغة بايثون - الدرس الرابع عشر: الشروط في بايثون: الطرق المتعددة مع elif
في هذا الدرس من سلسلة “تعلم البرمجة من الصفر بلغة بايثون” سنكمل حديثنا عن الشروط في بايثون ونتعرف على الطرق المتعددة في الشروط التي يمكن إنشاؤها باستخدام كلمة elif مع أمثلة مفصلة.
الطرق المتعددة
ذكرنا أنه باستخدام else
يمكننا تشكيل ما يشبه مفترق طرق: إما أن تذهب في طريق if
أو في طريق else
، فهناك طريقان يتم اختيار أحدهما. لكن في الحقيقة: يمكننا تشكيل مفترق طرق لأكثر من طريقين؛ يمكننا تشكيل مفترق طرق لثلاث وأربع وخمس طرق وأكثر من ذلك. يمكننا فعل ذلك باستخدام elif
.
مثال:
if x < 2:
print('صغير')
elif x < 10:
print('وسط')
else:
print('كبير')
print('انتهى البرنامج')
ويمكن تمثيل سير هذا الكود عن طريق المخطط التالي:
بداية سيسأل هل x
أقل من 2؟ إذا كان الجواب “صحيح” سيطبع صغير
وينتقل إلى جملة الطباعة الأخيرة ويطبع انتهى البرنامج
. أما إذا كان الجواب “خطأ” وكانت x
أكبر أو تساوي 2: عندها سينتقل إلى elif
وسيسأل هل x
أقل من 10؟ إذا كان الجواب “صحيح” سيطبع وسط
وينتقل إلى جملة الطباعة الأخيرة ويطبع انتهى البرنامج
. أما إذا كان الجواب “خطأ” وكانت x
أكبر أو تساوي 10: عندها سينتقل إلى else
وسيطبع كبير
ثم سيطبع انتهى البرنامج
.
لاحظ أنه عندما يكون لدينا عدة شروط (مع if
و elif
و else
) فدائماً سيتم تنفيذ الأوامر التابعة لواحد منها. مثلاً في المثال أعلاه: سيتم تنفيذ الأوامر التابعة لـ if
أو الأوامر التابعة لـ elif
أو الأوامر التابعة لـ else
.
هذا الكود يعتمد تنفيذه على قيمة x
. إذا افترضنا أن x
كانت قيمتها 0 قبل هذا الكود فما الذي ستتم طباعته؟ بناء على المخطط والشرح أعلاه: فإن البرنامج سيطبع صغير
ثم انتهى البرنامج
لأن جواب شرط if
سيكون “صحيح” (أو “True”) عندما تكون x
قيمتها 0.
ماذا لو كانت قيمة x
تساوي 5؟ باتباع نفس المنطق: سنرى أنه سيتم طباعة وسط
ثم انتهى البرنامج
لأن جواب شرط if
سيكون “خطأ” لكن جواب شرط elif
سيكون “صحيح”.
ماذا لو كانت قيمة x
تساوي 20؟ عندها سيتم طباعة كبير
ثم انتهى البرنامج
لأن شرط if
سيكون جوابه “خطأ” (20 ليست أقل من 2) وكذلك شرط elif
سيكون جوابه “خطأ” (لأن 20 ليست أقل من 10)، فبعد ذلك لا يتبقى لدينا إلا else
و else
دائماً ليس لها شرط، فعندما تكون أجوبة الشروط التي قبل else
كلها “خطأ” يقوم البرنامج بتنفيذ الأوامر التابعة لـ else
.
إذا أردنا التعبير عن هذا البرنامج بلغتنا سنقول:
إذا كانت
x
أقل من 2: اطبعصغير
أما إذا كانت
x
أقل من 10: اطبعوسط
إذا لم تتحقق الشروط السابقة: اطبع
كبير
يمكنك إضافة ما تشاء من جمل elif
. في هذا المثال كان لدينا جملة elif
واحدة لكن إن احتجت يمكن أن تضع ثلاثة وأربعة وأكثر حسب ما تحتاجه في برنامجك. يمكنك أيضاً أن تستغني عن else
إذا لم تكن تحتاجها. في المثال التالي لن يتم طباعة شيء إلا انتهى البرنامج
:
x = 50
if x < 2:
print('صغير')
elif x < 10:
print('وسط')
print('انتهى البرنامج')