الفرق بين المراجعتين لصفحة: «Python/bool operations»
< Python
لا ملخص تعديل |
ط نقل Mohammed Taher صفحة Python/bool-operators إلى Python/bool-operations |
(لا فرق)
| |
مراجعة 10:05، 11 مارس 2018
تقدّم بايثون ثلاث عمليات منطقية، وهي مرتبة في الجدول التالي حسب أولويتها ترتيبًا تصاعديًا:
| العامل | النتيجة | ملاحظات |
|---|---|---|
x or y
|
إذا كان x خطأً، فعالج y، وإلا عالج x
|
هذا العامل ذو دارة قصيرة (short-circuit operator)؛ لذا فإنّه يعالج الوسيط الثاني فقط عندما يكون الوسيط الأول خطأً. |
x and y
|
إذا كان x خطأً، فعالج x، وإلا عالج y
|
هذا العامل ذو دارة قصيرة (short-circuit operator)؛ لذا فإنّه يعالج الوسيط الثاني فقط عندما يكون الوسيط الأول صحيحًا. |
not x
|
إذا كان x خطأً، فالنتيجة True، وإلا False. | يمتلك العامل not أولوية أدنى من العوامل غير المنطقية، لذا فإنّ العبارة not a == b ستفسّر إلى not (a == b).
أما العبارة |
في سياق العمليات المنطقية وكذلك عند استخدام التعابير من طرف عبارات التحكم في التنفيذ، تفسّر القيم التالية إلى خطأ:
- عبارة False
- عبارة None
- العدد 0 بجميع أنواعه (صحيح أو عشري أو كسري).
- السلاسل النصية والحاويات الفارغة (بضمنها الصفوف، القوائم، القواميس، المجموعات، المجموعات الجامدة).
تفسّر اللغة أيّ قيمة أخرى على أنّها صحيحة.
ملاحظات
- يعطي العامل not القيمة True إن كان وسيطه خطأً، وFalse فيما عدا ذلك.
- يعالج التعبير x and y المتغير x أوّلًا؛ فإن كان x خطأً تعاد قيمته، وإلا يُعالج المتغير y وتُعاد القيمة الناتجة عن المعالجة.
- يُعالج التعبير x or y المتغير x أولًا؛ فإن كان x صحيحًا تعاد قيمته، وإلّا يُعالج المتغير y وتعاد القيمة الناتجة عن المعالجة.
- لاحظ أنّ العاملين and و or لا يقيدان القيمة والنوع المعاد منهما بـ False و True، بل هما يعيدان الوسيط الأخير الذي تمّت معالجته. وهذا مفيد في بعض الأحيان، فعلى سبيل المثال إن كانت
sسلسلة نصية يجب استبدالها بقيمة افتراضية إن كانت فارغة يعطي التعبيرs or 'foo' القيمة المطلوبة.
- يجب أن ينشئ العامل
notقيمة جديدة؛ لذا فإنّه يعيد قيمة منطقية بصرف النظر عن نوع الوسيط (مثلًا نتيجة التعبيرnot 'foo' هيFalseوليست'').
مصادر
صفحتا Built-in Types و Expressions في توثيق بايثون الرسمي.