البرمجة

كيف يعمل تقييم الشروط المتعددة في جملة if في Python

عندما تكتب الشرط في elif كالتالي: elif num2 >= num1 and num3:، فإن Python يفسرها على أن تقوم بالتحقق من قيمة num2 أولاً، وإذا كانت أكبر أو تساوي num1، ثم يتحقق مباشرةً من قيمة num3 بغض النظر عن قيمة num1 و num2. هذا يعني أن الشرط الذي تقدمه ليس بالضرورة يعبر عن ما تعتقده.

لحل هذه المشكلة، يجب عليك تعديل شرط elif ليشمل قيمتي num2 و num3 معًا، وبالتالي يجب عليك كتابة الشرط كالتالي:

python
elif 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 لأن النتيجة بالفعل ستكون غير صحيحة بغض النظر عما يحدث في الجانب الأيمن.

في الشرط الأصلي الذي وضعته:

python
elif num2 >= num1 and num3: print(num2, 'Is the greatest number!')

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

زر الذهاب إلى الأعلى