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

من موسوعة حسوب
أنشأ الصفحة ب'تقدّم بايثون ثلاث عمليات منطقية، وهي مرتبة في الجدول التالي حسب أولويتها ترتيبًا تصاعديًا: {|...'
 
ط تعديل التصنيفات
 
(8 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:العمليات المنطقية في بايثون}}</noinclude>
تقدّم بايثون ثلاث عمليات منطقية، وهي مرتبة في الجدول التالي حسب أولويتها ترتيبًا تصاعديًا:
تقدّم بايثون ثلاث عمليات منطقية، وهي مرتبة في الجدول التالي حسب أولويتها ترتيبًا تصاعديًا:
{| class="wikitable"
{| class="wikitable"
سطر 14: سطر 15:
|-
|-
|<code>not x</code>
|<code>not x</code>
|إذا كان x خطأً، فالنتيجة True، وإلا False.
|إذا كان 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> فتعدّ خطأٌ في الصياغة.
سطر 21: سطر 22:


في سياق العمليات المنطقية وكذلك عند استخدام التعابير من طرف عبارات التحكم في التنفيذ، تفسّر القيم التالية إلى خطأ:
في سياق العمليات المنطقية وكذلك عند استخدام التعابير من طرف عبارات التحكم في التنفيذ، تفسّر القيم التالية إلى خطأ:
* عبارة False
* عبارة <code>False</code>
* عبارة None
* عبارة <code>None</code>
* العدد 0 بجميع أنواعه (صحيح أو عشري أو كسري).
* العدد <code>0</code> بجميع أنواعه ([[Python/int|صحيح]] "<code>0</code>" أو [[Python/float|عشري]] "<code>0.0</code>").
* السلاسل النصية والحاويات الفارغة (بضمنها الصفوف، القوائم، القواميس، المجموعات، المجموعات الجامدة).
* [[Python/str|السلاسل النصية]] والحاويات الفارغة (بضمنها [[Python/tuples|الصفوف]]، [[Python/list|القوائم]]، [[Python/dict|القواميس]]، [[Python/set|المجموعات]]، [[Python/set|المجموعات الجامدة]]).
تفسّر اللغة أيّ قيمة أخرى على أنّها صحيحة.
تفسّر اللغة أيّ قيمة أخرى على أنّها صحيحة.


== ملاحظات ==
== ملاحظات ==
* يعطي العامل not القيمة True إن كان وسيطه خطأً، وFalse فيما عدا ذلك.
* يعطي العامل <code>not</code> القيمة <code>True</code> إن كان وسيطه خطأً، و<code>False</code> فيما عدا ذلك.


* يعالج التعبير x and y المتغير x أوّلًا؛ فإن كان x خطأً تعاد قيمته، وإلا يُعالج المتغير y وتُعاد القيمة الناتجة عن المعالجة.
* يعالج التعبير <code>x and y</code> المتغير <code>x</code> أوّلًا؛ فإن كان <code>x</code> خطأً تعاد قيمته، وإلا يُعالج المتغير <code>y</code> وتُعاد القيمة الناتجة عن المعالجة.


* يُعالج التعبير x or y المتغير x أولًا؛ فإن كان x صحيحًا تعاد قيمته، وإلّا يُعالج المتغير y وتعاد القيمة الناتجة عن المعالجة.
* يُعالج التعبير <code>x or y</code> المتغير <code>x</code> أولًا؛ فإن كان <code>x</code> صحيحًا تعاد قيمته، وإلّا يُعالج المتغير <code>y</code> وتعاد القيمة الناتجة عن المعالجة.


* لاحظ أنّ العاملين and و or لا يقيدان القيمة والنوع المعاد منهما بـ False و True، بل هما يعيدان الوسيط الأخير الذي تمّت معالجته. وهذا مفيد في بعض الأحيان، فعلى سبيل المثال إن كانت <code>s</code> سلسلة نصية يجب استبدالها بقيمة افتراضية إن كانت فارغة يعطي التعبير <code>s or 'foo'</code>‎ القيمة المطلوبة.
* لاحظ أنّ العاملين <code>and</code> و <code>or</code> لا يقيدان القيمة والنوع المعاد منهما بـ <code>False</code> و <code>True</code>، بل هما يعيدان الوسيط الأخير الذي تمّت معالجته. وهذا مفيد في بعض الأحيان، فعلى سبيل المثال إن كانت <code>s</code> [[Python/str|سلسلة نصية]] يجب استبدالها بقيمة افتراضية إن كانت فارغة يعطي التعبير <code>s or 'foo'</code>‎ القيمة المطلوبة.


* يجب أن ينشئ العامل <code>not</code> قيمة جديدة؛ لذا فإنّه يعيد قيمة منطقية بصرف النظر عن نوع الوسيط (مثلًا نتيجة التعبير <code>not 'foo'</code>‎ هي <code>False</code> وليست <code><nowiki>''</nowiki></code>).
* يجب أن ينشئ العامل <code>not</code> قيمة جديدة؛ لذا فإنّه يعيد قيمة منطقية بصرف النظر عن نوع الوسيط (مثلًا نتيجة التعبير <code>not 'foo'</code>‎ هي <code>False</code> وليست <code><nowiki>''</nowiki></code>).


== مصادر ==
== مصادر ==
صفحتا [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 Operations]]

المراجعة الحالية بتاريخ 07:23، 12 يناير 2019

تقدّم بايثون ثلاث عمليات منطقية، وهي مرتبة في الجدول التالي حسب أولويتها ترتيبًا تصاعديًا:

العامل النتيجة ملاحظات
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 وليست '').

مصادر