Abdelkarim Abekkane نشر الخميس في 16:00 أرسل تقرير نشر الخميس في 16:00 كيف يمكنني استعمال عملتي المقارنة is,is not Thanks 3 اقتباس
0 محمد عاطف25 نشر الخميس في 16:16 أرسل تقرير نشر الخميس في 16:16 تستخدم is و is not في لغة بايثون للتحقق من الهوية (Identity) أي للتأكد مما إذا كان المتغيران يشيران إلى نفس الكائن (Object) في الذاكرة وليس فقط إذا كانت قيمهما متساوية. أولا بالنسبة لاستخدام is فإنه تكون النتيجة True فقط إذا كان المتغيران يشيران إلى نفس العنوان في الذاكرة : list1 = [1, 2, 3] list2 = [1, 2, 3] list3 = list1 print(list1 == list2) # True (لأن القيم متساوية) print(list1 is list2) # False (لأن كل قائمة مخزنة في مكان مختلف في الذاكرة) print(list1 is list3) # True (لأن list3 تشير إلى نفس مكان list1) ثانيا استخدام is not وهي عكس is تماما وتستخدم للتأكد من أن كائنين لا يشغلان نفس العنوان : x = [10] y = [10] if x is not y: print("لهما نفس القيمة ولكن في أماكن مختلفة") والاستخدام الأكثر شيوعا ل is و is not هو عند المقارنة مع القيم الخاصة مثل None أو القيم المنطقية True و False. user_data = None if user_data is None: print("None") # if user_data == None: (هذه تعمل لكنها غير مفضلة في بايثون) 1 اقتباس
0 Abdelkarim Abekkane نشر الخميس في 17:38 الكاتب أرسل تقرير نشر الخميس في 17:38 شكرا على الشرح اقتباس
0 ياسر مسكين نشر الخميس في 18:55 أرسل تقرير نشر الخميس في 18:55 السلام عليكم ورحمة الله تعالى وبركاته، عاملا المقارنة is و is not في Python لا يقارنان القيمة بل يقارنان هوية الكائن في الذاكرة أي هل المتغيران يشيران إلى نفس الكائن تماما أم لا فمثلا إذا كتبت a is b فهذا يعني: "هل a و b يشيران إلى نفس الكائن في الذاكرة؟" وليس: "هل قيمتاهما متساويتان؟" والاستخدام الأكثر شيوعا وصحة لهما هو المقارنة مع None إذ يكتب: if x is None أو: if x is not None بدلا من: == لأن None كائن وحيد في Python أما مقارنة الأعداد أو النصوص أو القوائم فيجب أن تتم باستخدام == و != لأن is قد يعطي نتائج غير متوقعة بسبب آلية تخزين Python الداخلية. اقتباس
0 عبد الوهاب بومعراف نشر الخميس في 19:00 أرسل تقرير نشر الخميس في 19:00 المعاملان is و is not في بايثون هما معاملا مقارنة هوية يتحققان مما إذا كان متغيران يشيران إلى نفس الكائن في الذاكرة عبر id() وليس لمقارنة القيم كما تفعل == و != فمثلا a = [1,2,3] و b = [1,2,3] تجعل a == b ترجع True لتطابق القيم لكن a is b سترجع False لأنهما كائنان منفصلان بينما بعد b = a تصبح a is b وترجع True لأنهما يشيران لنفس الكائن. اقتباس
السؤال
Abdelkarim Abekkane
كيف يمكنني استعمال عملتي المقارنة is,is not
Thanks
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.