الفرق بين المراجعتين لصفحة: «Python/bool operations»

من موسوعة حسوب
طلا ملخص تعديل
ط تنسيق كلمة وسطر
سطر 16: سطر 16:
|<code>not x</code>
|<code>not x</code>
|إذا كان x خطأً، فالنتيجة <code>True</code>، وإلا <code>False</code>.
|إذا كان x خطأً، فالنتيجة <code>True</code>، وإلا <code>False</code>.
|يمتلك العامل not أولوية أدنى من العوامل غير المنطقية، لذا فإنّ العبارة <code>not a == b</code> ستفسّر إلى <code>not (a == b)</code>‎.
|يمتلك العامل <code>not</code> أولوية أدنى من العوامل غير المنطقية، لذا فإنّ العبارة <code>not a == b</code> ستفسّر إلى <code>not (a == b)</code>‎.


أما العبارة <code>a == not b</code> فتعدّ خطأٌ في الصياغة.
أما العبارة <code>a == not b</code> فتعدّ خطأٌ في الصياغة.
سطر 40: سطر 40:


== مصادر ==
== مصادر ==
صفحتا [https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not Built-in Types] و  [https://docs.python.org/3/reference/expressions.html#boolean-operations Expressions] في توثيق بايثون الرسمي.
* صفحتا [https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not Built-in Types] و  [https://docs.python.org/3/reference/expressions.html#boolean-operations Expressions] في توثيق بايثون الرسمي.
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Operators]]
[[تصنيف:Python Operators]]

مراجعة 16:19، 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)‎.

أما العبارة a == not b فتعدّ خطأٌ في الصياغة.

في سياق العمليات المنطقية وكذلك عند استخدام التعابير من طرف عبارات التحكم في التنفيذ، تفسّر القيم التالية إلى خطأ:

تفسّر اللغة أيّ قيمة أخرى على أنّها صحيحة.

ملاحظات

  • يعطي العامل 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 وليست '').

مصادر