5.7. المزيد عن الشروط #
الشروط المستخدمة في جملتي while وif يمكن أن تحتوي على أي معاملات، وليس فقط المقارنات.
معاملا المقارنة in وnot in يتحققان من وجود قيمة في تسلسل. معاملا is وis not يقارنان ما إذا كان الكائنان هما نفس الكائن بالفعل؛ هذا مهم فقط للكائنات القابلة للتغيير مثل القوائم. جميع عوامل المقارنة لها نفس الأولوية، وهي أقل من أولوية جميع العوامل العددية.
يمكن ربط المقارنات. على سبيل المثال، a < b == c لاختبار ما إذا كان a أصغر من b، بالإضافة إلى أن b يساوي c.
يمكن دمج المقارنات باستخدام العوامل المنطقية و و أو، ويمكن نفي نتيجة المقارنة (أو أي تعبير منطقي آخر) باستخدام not. لهذه العوامل أولوية أقل من عوامل المقارنة؛ فبينهما، يتمتع not بأعلى أولوية و أو أدنى أولوية، بحيث يكون A و ليس B أو C مكافئًا لـ (A و (ليس B)) أو C. وكما هو الحال دائمًا، يمكن استخدام الأقواس للتعبير عن التركيب المطلوب.
العوامل المنطقية And وOR تسمى معاملات الدارة القصيرة: تُقيّم وسيطاتها من اليسار إلى اليمين، ويتوقف التقييم بمجرد تحديد النتيجة. على سبيل المثال، إذا كانت A وC صحيحتين وB خطأ، فإن A وB وC لا تُقيّم التعبير C. عند استخدامه كقيمة عامة وليس كقيمة منطقية، تكون قيمة الإرجاع لمعامل الدارة القصيرة هي آخر وسيطة مُقيّمة.
يمكن تعيين نتيجة مقارنة أو تعبير منطقي آخر إلى متغير. على سبيل المثال،
>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'
>>> non_null = string1 or string2 or string3
>>> non_null
'Trondheim'
لاحظ أنه في بايثون، على عكس لغة سي، يجب أن يتم التعيين داخل التعبيرات بشكل صريح باستخدام عامل الفظ :=. هذا يُجنّب بعض المشاكل الشائعة في برامج سي: كتابة = في تعبير عندما يكون المقصود ==.