تقنية

range في بايثون: هل المساواة تعني تطابق stop؟

النطاقان a وb يعرضان القيم 1 و3 و5، رغم اختلاف stop.
قيم متساوية.

مقارنة نطاقين من نوع range باستعمال == تراعي تسلسل القيم وترتيبها. [1]

الخلاصة السريعة

لا؛ قد يتساوى النطاقان رغم اختلاف stop. [1]

  • مقارنة نطاقين من نوع range باستعمال == تراعي تسلسل القيم وترتيبها. [1]
  • تساوي النطاقين لا يضمن تطابق خصائص start وstop وstep. [1]
  • مثال مؤلف على CPython 3.12.14: a=range(1,6,2) وb=range(1,7,2)؛ كلاهما يمثل [1,3,5]، وa==b تعطي True. [1]
  • لكن a.stop تساوي 6، وb.stop تساوي 7؛ نهاية النطاقين ليست متطابقة. [1]
  • مع c=range(5,0,-2)، القيم [5,3,1]؛ a==c تعطي False لاختلاف ترتيب القيم. [1]

تسلسل القيم

مقارنة نطاقين من نوع range باستعمال == تراعي تسلسل القيم وترتيبها. [1]

خصائص النطاق

تساوي النطاقين لا يضمن تطابق خصائص start وstop وstep. [1]

نطاقان متساويان

مثال مؤلف على CPython 3.12.14: a=range(1,6,2) وb=range(1,7,2)؛ كلاهما يمثل [1,3,5]، وa==b تعطي True. [1]

a==b -> True [1]

النطاق a يعرض 1 ثم 3 ثم 5؛ c يعرضها بالعكس، والمساواة False.
ترتيب معكوس.

النهاية والترتيب

لكن a.stop تساوي 6، وb.stop تساوي 7؛ نهاية النطاقين ليست متطابقة. [1]

مع c=range(5,0,-2)، القيم [5,3,1]؛ a==c تعطي False لاختلاف ترتيب القيم. [1]

a==c -> False [1]

المراجع

  1. Python — range

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.