• 0

المقارنة بين السلاسل المحرفية باستخدام == و استخدام is

a = 'pub'
b = ''.join(['p', 'u', 'b'])
a == b

True

a is b

False

ما الفرق بين == وis

علماً انو الحالتين هيي للتأكد من ان المتغيرين متساويين

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

مرحبا مرام
يقارن عامل المساواة (==) قيم كل من المعاملات ويتحقق من تساوي القيمة. أما العامل "is" يتحقق مما إذا كان كلا المعاملين يشيران إلى نفس الكائن أم لا, لنشرح ذلك بمثال

list1 = []
list2 = []


//المقارنة الأولى
 
if (list1 == list2):
    print("True")
else:
    print("False")
    
    
 //المقارنة الثانية
if (list1 is list2):
    print("True")
else:
    print("False")
    

في المقارنة الأولى نقارن هل قيمة list1 هي نفسها قيمة list2, سوف يطبع true لأن القيم بالفعل متساوية
في المقارنة الثانية نقارن هل list1 يشير الى نفس الكائن الذي يشير اليه list2 , بالطبع لا فسوف يطبع false
شكرا لك

انشر على الشّبكات الاجتماعية


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

في لغة بايثون يتم استخدام المعامل == للتأكد من تطابق قيمة متغيرين فهي تعيد true عند تساوي القيمتين اللتين نطبق عليهما هذا الشرط.

يمكن استخدام == لمقارنة قيمتين لمتغيرات أو أغراض variable | Objects.

أما الكلمة المفتاحية is تستعمل عندما نريد التأكد أن المتغيران يشيران لنفس العنوان في الذاكرة (أي لهما نفس القيمة و تعديل أحدهما يسبب تعديل الآخر).

== تعيد true في جميع الحالات التي تكون القيمتين متساويتين، أما is تعيد true فقط في حال كان طرفي المقارنة يشيران لنفس الكينونة | الكيان (نفس الغرض) | نفس عنوان الذاكرة.

1==True   => returns True,

but 

1 is True => returns False

======

أمثلة:

# python3 code to
# illustrate the
# difference between
# == and is operator
# [] is an empty list

list1 = []
list2 = []
list3=list1
 
if (list1 == list2):  # true نفس القيمة 

 
if (list1 is list2):  # false غرضين مختلفين

 
if (list1 is list3):  # true نفس الغرض

 
list3 = list3 + list2
  
if (list1 is list3):  # false أصبحا غرضين مختلفين

عند تعريف قائمتين :

list1 = []
list2 = []
 
print(id(list1))
print(id(list2))

# output
139877155242696
139877155253640

وباستخدام الدالة id التي تعيد المعرف الخاص بكل غرض، نلاحظ أنهما مختلفتين.. لذلك is تعيد false فهما فعلياً ليسا نفس الغرض

عملية الإسناد في المثال السابق 

list3 = list1

أدت لأن تأخذ القائمة 3 عنوان و قيمة القائمة الأولى لذلك هما متطابقتين وليس فقط متساويتين بالقيمة لذلك is تعيد true في هذه الحالة.

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن