البرمجة

فهم ظاهرة التقييم اللوجيكي في Python: حينما تكون False هي النتيجة

في عالم البرمجة باستخدام لغة Python، يمكن أن تكون بعض السلوكيات غير المتوقعة أمرًا مثيرًا للدهشة، ويبدو أن الحالتين التي قدمتهما هي أمثلة جيدة على ذلك. لنقم بتحليل الكود لفهم السبب وراء تقييم العبارات إلى False على الرغم من أنها قد تبدو صحيحة.

في السطر الأول:

python
6 == (5 or 6)

فإن (5 or 6) يستخدم العامل or، والذي يقوم بإرجاع القيمة الأولى إذا كانت صحيحة، وإلا يقوم بإرجاع القيمة الثانية. في هذه الحالة، القيمة 5 هي القيمة الأولى وتقدم قبل الـ6. لذا، (5 or 6) تقوم بإرجاع 5. وعندما نقارن 6 مع 5، فإن العبارة تقيم إلى False.

السطر الثاني يظهر نفس النمط:

python
'b' == ('a' or 'b')

هنا أيضًا، ( 'a' or 'b' ) ستعيد ‘a’، ثم نقارن ‘b’ مع ‘a’، وبما أنهما غير متساويين، فإن العبارة تقيم إلى False.

السبب الرئيسي وراء هذا التصرف يعود إلى كيفية تفسير Python للعمليات اللوجيكية. عند استخدام or، يتم إرجاع القيمة الأولى الحقيقية (True) أو القيمة الأخيرة إذا لم تكن هناك قيم حقيقية. وعلى هذا النحو، يتم تقييم العبارة بشكل غير متوقع.

لتحقيق النتائج المتوقعة، يمكن استخدام الطريقة التالية:

python
6 == 5 or 6

وأيضًا:

python
'b' == 'a' or 'b'

وبهذا يمكن تحقيق نتائج صحيحة ومتوقعة في المقارنات اللوجيكية في Python.

المزيد من المعلومات

لفهم هذا السلوك الغريب في Python، يجب أن نتناول مفهوم “short-circuiting” في العمليات اللوجيكية. يعني ذلك أن Python يتوقف عن تقييم التعبير فور العثور على قيمة تكفي لتحديد قيمة العبارة.

في سياق العبارة:

python
6 == (5 or 6)

عندما يقوم Python بتقييم (5 or 6)، يجد أن 5 هو True (لأنه ليس 0 أو فارغ أو False). لكنه يتوقف فورًا بمجرد العثور على True، ولا يقوم بالتحقق من القيمة الثانية (6). لذلك يعتبر الشرط False.

في السياق ذاته، في العبارة:

python
'b' == ('a' or 'b')

يتوقف Python عندما يجد ‘a’ لأنها قيمة True. وبالتالي، يتم تقييم العبارة كـ 'b' == 'a'، وهو False.

لتجنب هذا السلوك، يمكنك استخدام الطريقة التالية:

python
6 == 5 or 6 'b' == 'a' or 'b'

وهكذا ستعود القيمة المتوقعة True في كلا الحالتين. يتم ذلك عندما يكون العمليات اللوجيكية تعتمد على القيم الفعلية للعبارات دون أن يتم تقديم قيم “مزيفة” باستخدام or أو and.

مقالات ذات صلة

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

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر