الفرق بين المراجعتين ل"Python/bool operations"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (تنسيق كلمة وسطر)
ط (تعديل التصنيفات)
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 24: سطر 24:
 
* عبارة <code>False</code>
 
* عبارة <code>False</code>
 
* عبارة <code>None</code>
 
* عبارة <code>None</code>
* العدد <code>0</code> بجميع أنواعه ([[Python/int|صحيح]] أو [[Python/float|عشري]]).
+
* العدد <code>0</code> بجميع أنواعه ([[Python/int|صحيح]] "<code>0</code>" أو [[Python/float|عشري]] "<code>0.0</code>").
* السلاسل النصية والحاويات الفارغة (بضمنها [[Python/tuples|الصفوف]]، [[Python/list|القوائم]]، [[Python/dict|القواميس]]، [[Python/set|المجموعات]]، [[Python/set|المجموعات الجامدة]]).
+
* [[Python/str|السلاسل النصية]] والحاويات الفارغة (بضمنها [[Python/tuples|الصفوف]]، [[Python/list|القوائم]]، [[Python/dict|القواميس]]، [[Python/set|المجموعات]]، [[Python/set|المجموعات الجامدة]]).
 
تفسّر اللغة أيّ قيمة أخرى على أنّها صحيحة.
 
تفسّر اللغة أيّ قيمة أخرى على أنّها صحيحة.
  
سطر 35: سطر 35:
 
* يُعالج التعبير <code>x or y</code> المتغير <code>x</code> أولًا؛ فإن كان <code>x</code> صحيحًا تعاد قيمته، وإلّا يُعالج المتغير <code>y</code> وتعاد القيمة الناتجة عن المعالجة.
 
* يُعالج التعبير <code>x or y</code> المتغير <code>x</code> أولًا؛ فإن كان <code>x</code> صحيحًا تعاد قيمته، وإلّا يُعالج المتغير <code>y</code> وتعاد القيمة الناتجة عن المعالجة.
  
* لاحظ أنّ العاملين <code>and</code> و <code>or</code> لا يقيدان القيمة والنوع المعاد منهما بـ <code>False</code> و <code>True</code>، بل هما يعيدان الوسيط الأخير الذي تمّت معالجته. وهذا مفيد في بعض الأحيان، فعلى سبيل المثال إن كانت <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>).
سطر 42: سطر 42:
 
* صفحتا [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 وليست '').

مصادر