• 0

لماذا هذا السطر 1 in [1,0] == True يعتبر خاطئا في بايثون؟

عندما أقوم بتنفيذ سطر 1 in [1,0] == True يتم إرجاع كلمة "False” على الرغم من أن هذا السطر من المفترض أن يُرجع "True” لأن العدد 1 موجود في قائمة [1,0]، فما هو سبب هذا الخطأ؟

>>> 1 in [1,0]             # This is expected
True
>>> 1 in [1,0] == True     # This is strange
False

 

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


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

يعتبر هذا النوع من الأخطاء الأكثر شيوعا عند المبرمجين المبتدئين بلغة بايثون ويعود السبب إلى عدم دراسة جزء العوامل الحسابية جيدا عند تعلم اللغة.
فسبب الخطأ في السطر السابق هو أن بايثون يُطبّق تسلسل عامل المقارنة أي أنه سيُقسم النص إلى جزأين ومن ثم سيربطهم عن طريق العامل and.
سيصبح السطر السابق الذي كتبته كالتالي:

(1 in [1, 0]) and ([1, 0] == True)

والذي يعطي خطأ (false).

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


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

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

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

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


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

تسجيل الدخول

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


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