اذهب إلى المحتوى
  • 0

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

MaxReve

السؤال

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

False in [False, True]

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

not(True) in [False, True]

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

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

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

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

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


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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...