الفرق بين المراجعتين لصفحة: «Python/bool operations»
< Python
ط نقل Mohammed Taher صفحة Python/bool-operators إلى Python/bool-operations |
جميل-بيلوني (نقاش | مساهمات) ط تعديل التصنيفات |
||
(6 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:العمليات المنطقية في بايثون}}</noinclude> | ||
تقدّم بايثون ثلاث عمليات منطقية، وهي مرتبة في الجدول التالي حسب أولويتها ترتيبًا تصاعديًا: | تقدّم بايثون ثلاث عمليات منطقية، وهي مرتبة في الجدول التالي حسب أولويتها ترتيبًا تصاعديًا: | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 15: | سطر 15: | ||
|- | |- | ||
|<code>not x</code> | |<code>not x</code> | ||
|إذا كان x خطأً، فالنتيجة | |إذا كان 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> فتعدّ خطأٌ في الصياغة. | ||
سطر 22: | سطر 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 إن كان وسيطه خطأً، | * يعطي العامل <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 و | * لاحظ أنّ العاملين <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 | [[تصنيف: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) .
أما العبارة |
في سياق العمليات المنطقية وكذلك عند استخدام التعابير من طرف عبارات التحكم في التنفيذ، تفسّر القيم التالية إلى خطأ:
- عبارة
False
- عبارة
None
- العدد
0
بجميع أنواعه (صحيح "0
" أو عشري "0.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 في توثيق بايثون الرسمي.