عندما تكتب الشرط في elif
كالتالي: elif num2 >= num1 and num3:
، فإن Python يفسرها على أن تقوم بالتحقق من قيمة num2
أولاً، وإذا كانت أكبر أو تساوي num1
، ثم يتحقق مباشرةً من قيمة num3
بغض النظر عن قيمة num1
و num2
. هذا يعني أن الشرط الذي تقدمه ليس بالضرورة يعبر عن ما تعتقده.
لحل هذه المشكلة، يجب عليك تعديل شرط elif
ليشمل قيمتي num2
و num3
معًا، وبالتالي يجب عليك كتابة الشرط كالتالي:
pythonelif num2 >= num1 and num2 >= num3:
print(num2, 'Is the greatest number!')
بهذه الطريقة، سيتم التحقق من أن num2
أكبر أو يساوي num1
، وأن num2
أكبر أو يساوي num3
، مما يعني أن num2
هو العدد الأكبر بين الثلاثة.
المزيد من المعلومات
عندما تستخدم and
في شرط if
أو elif
، فإنك تقوم بفحص صحة الشرطين الموجودين على الجانبين من and
. إذا كان الشرط على الجانب الأيسر من and
يقدم قيمة غير صحيحة (مثل num2 >= num1
عندما تكون num2
أصغر من num1
)، فإن Python سيتوقف عن تقييم الجانب الأيمن من and
لأن النتيجة بالفعل ستكون غير صحيحة بغض النظر عما يحدث في الجانب الأيمن.
في الشرط الأصلي الذي وضعته:
pythonelif num2 >= num1 and num3:
print(num2, 'Is the greatest number!')
إذا كان num2
أصغر من num1
، سيتم تقييم الجزء num3
من الشرط. وبما أن num3
لا تمثل شرطًا منطقيًا (بل هو عبارة عن قيمة مفردة)، فإن Python يعتبرها صحيحة (بالإشارة إلى أن num3
لديها قيمة غير صفرية أو غير فارغة)، وبالتالي يتم تنفيذ الجزء print(num2, 'Is the greatest number!')
من الشرط.