Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

التحقق من الهوية

جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 26 من 78.

في لغة بايثون، تُستخدم المعاملات is و is not للتحقق من هوية الكائنات. وعلى عكس المعامل ==، الذي يتحقق مما إذا كان لمتغيرين نفس القيمة، فإن المعامل is يتحقق مما إذا كان المتغيران يشيران إلى نفس الكائن تماماً في الذاكرة.

الاستخدام الأساسي لـ is:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # النتيجة: True
print(a is c)  # النتيجة: False

في هذا المثال، يشير a و b إلى نفس كائن القائمة، لذا فإن a is b تُرجع True. ومع ذلك، فإن a و c هما كائنان مختلفان للقائمة بنفس القيم، لذا فإن a is c تُرجع False.

الاستخدام الأساسي لـ is not:

x = 5
y = 5
z = 10

print(x is not y)  # المخرجات: False
print(x is not z)  # المخرجات: True

هنا، يشير x و y إلى نفس كائن العدد الصحيح (بسبب تحسينات Python للأعداد الصحيحة الصغيرة)، لذا فإن x is not y يعيد False. x و z هما كائنان مختلفان، لذا فإن x is not z يعيد True.

تُعد فحوصات الهوية (Identity checks) مفيدة بشكل خاص عندما تريد تحديد ما إذا كان متغيران يشيران إلى نفس الكائن في الذاكرة، بدلاً من مجرد امتلاك نفس القيمة.

challenge icon

التحدي

سهل

قم بإنشاء متغيرين، list1 و list2، حيث:

  • list1 يشير إلى قائمة [1, 2, 3].
  • list2 يتم تعيينه لنفس الكائن.

استخدم عامل التشغيل is للتحقق مما إذا كان list1 و list2 يشيران إلى نفس الكائن.
استخدم عامل التشغيل is not للتحقق مما إذا كان list1 و list2 يشيران إلى كائنات مختلفة.
اطبع نتائج عمليات التحقق.

ورقة مرجعية

تتحقق عوامل التشغيل is و is not من هوية الكائن في الذاكرة، وليس فقط تساوي القيم مثل ==.

استخدام is للتحقق مما إذا كانت المتغيرات تشير إلى نفس الكائن:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # المخرج: True
print(a is c)  # المخرج: False

استخدام is not للتحقق مما إذا كانت المتغيرات تشير إلى كائنات مختلفة:

x = 5
y = 5
z = 10

print(x is not y)  # المخرج: False
print(x is not z)  # المخرج: True

تحدد فحوصات الهوية ما إذا كان متغيران يشيران إلى نفس الكائن في الذاكرة، وليس فقط ما إذا كان لهما نفس القيمة.

جرّب بنفسك

# اكتب الكود هنا
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow