اذهب إلى المحتوى
  • 0

الفرق بين in و not in في بايثون

Magic Games

السؤال

if name in employees : 
  print("The name is:  " + name)
else: 
  print(f"The name not : {name}")

ما الفرق هنا بين not 

او in 

هنا استطعت التأكد من الموظف موجود ام لا بدون استخدام not 

لماذ استخدم not 

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

Recommended Posts

  • 0

 لا تحتاج إلى استخدام not لأنك تتحقق بالفعل مما إن كان الاسم موجودًا باستخدام in.

فـ in نستخدمها للتحقق من عنصر معين وهو name لتفقد إن كان موجودًا في تسلسل معين (مثل قائمة employees)، وإن وجد العنصر، تعود العبارة بقيمة صحيحة True.

أما not in فهي لتفقد مما إن كان عنصر معين غير موجود في تسلسل معين، وإن لم يوجد تعود العبارة بقيمة صحيحة True.

لذا بما أنك تريد التحقق من الاسم هل موجود في قائمة الموظفين، فإن استخدام in هو الصحيح، ولو تريد التحقق مما إن كان الاسم غير موجود، فنستخدم not in.

if name not in employees:
    print(f"The name is not: {name}")
else:
    print("The name is: " + name)

 

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

  • 0

الكلمة المفتاحية not في لغة Python تستخدم لعكس قيمة منطقية. هذا يعني أن:

not True == False
not False == True

كما تستخدم لعكس وظيفة الكلمة المفتاحية in، لذلك فإن:

2 in [1, 2, 3, 4] == True
2 not in [1, 2, 3, 4] == False

لذلك، ففائدة الكلمة not ليست مقتصرة على الكود الذي ذكرته. ففيه يمكن أن تستخدم else لتحقيق عكس الشرط، لأن الشرط لا يستخدم not in.  لكن في بعض الأكواد الأخرى، قد يكون من المنظقي أكثر أن يتم استخدام not in للتأكد من أن قيمة غير موجودة، ولا يتم استخدام else مطلقا. فمثلا، إذا أردنا كتابة كود يقوم بإدراج قيم في قائمة فقط إذا لم تكن موجودة بمن قبل، فهنا سوف نستخدم not in بكل تأكيد:

values = []
for i in range(10):
  v = input('Enter a value: ')
  if v not in values:
    values.append(v)
print(values)

لاحظ كيف أننا هنا لم نستخدم else واستخدمنا not in. لو حاولنا عدم استخدام not in فسوف يصبح الكود هكذا:

values = []
for i in range(10):
  v = input('Enter a value: ')
  if v in values:
	continue
  else:
    values.append(v)
print(values)

وكما ترى، زاد طول الكود بدون فائدة واضطررنا إلى استخدام continue بدون سبب.

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...