• 0

لماذا تقوم عبارة not(True) in False, True بإرجاع false في البايثون ؟

إذا قمت بتنفيذ هذا السطر في البايثون:

False in [False, True]

فإنه سيقوم بإرجاع True وهذا واضح لأن False في القائمة، لكن لو قمت بتنفيذ هذا السطر:

not(True) in [False, True]

فإنه سيقوم بإرجاع False فما السبب ؟ أليس not(True) هي False ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

من أبرز الأخطاء التي تصادف مبرمجي البايثون (خاصة المبتدئين) هي أولوية العوامل الحسابية، فإن in دائما تسبق not في التنفيذ في لغة البايثون لذلك يتم تنفيذ in قبل not، ولذلك ستكون الشيفرة البرمجية التي قمت بكتابتها مشابهة لهذا:

>>> not (True in [False, True])
False

ولقد قصدت هذا:

>>> (not True) in [False, True]
True


حاول أن لا تكتب في البايثون Not(true) حاول على الأقل كتابتها not true لأن الأولى تجعلها مشابهة لاستدعاء دالة والتي هي في الأصل عامل حسابي not وليس دالة وهذا الأمر سوف يربك الشخص الذي يقوم بقراءة شيفرتك البرمجية.
المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن