اپراتور های in و not in در پایتون

  • آخرین بروزرسانی : 20 Ordibehesht 1402
اپراتور های in  و not in در پایتون

اپراتور های in  و not in در پایتون 

توابع in و not in وظیفه بررسی وجود و یا عدم وجود یک مقدار را در یک مجموعه را بر عهده دارند، این نوع بررسی معمولا در تمامی زبان های برنامه نویسی به شکل های مختلف قابل دسترسی میباشند. اما در پایتون از آن با نام اپراتور های عضویت یاد میشود

در این مقاله قرار است به بررسی بخش های مختلف بپردازیم که شامل چگونگی عملکرد این اپراتور ها و نحوه استفاده از آن ها در ساختمان داده های مختلف میباشد

برای متوجه شدن بهتر این مقاله نیاز است که شما درک نسبتا خوبی درمورد مسائل پایه ای زبان پایتون همچون لیست ها، ست ها، تاپل ها، رنج و استرینگ داشته باشید

: بررسی عضویت یک مقدار در یک مجموعه

در حالت عادی اگر بخواهیم بررسی کنیم که یک مقدار در یک مجموعه وجود دارد یا خیر میتوانیم از حلقه for استفاده کنیم، در زیر کد درست برای چک کردن این شرط آورده شده است که میتوانیم آن را ملاحظه کنیم

 

>>> def is_member(value, iterable):

...     for item in iterable:

...         if value is item or value == item:

...             return True

...     return False

 

توضیح کد : در این کد ما یک فانکشن ایجاد کرده ایم که دارای دو ورودی است، اول مقداری که میخواهیم بدانیم داخل مجموعه وجود دارد یا خیر و دوم مجموعه مورد نظر
در ادامه تک تک آیتم ها با توجه به مقدار ورودی بررسی میشنود و اگر شباهتی بین یکی از آیتم ها با مقدار ورودی یافت شود خروجی برابر
true خواهد بود و در غیر این صورت خروجی false میباشد

نکته : در بررسی کردن یافتن مقدار داخل مجموعه ما از دو حالت is یا == استفاده کرده ایم، این دو عملگر در عملکرد کمی متفاوت میباشند اما در اینجا مکمل یکدیگرند

.برای تست عملکرد فانکشن بالا کافیست تا به شکل زیر کد را اجرا کنیم

 

>>> is_member(5, [2, 3, 5, 9, 7])
True
 
>>> is_member(8, [2, 3, 5, 9, 7])
False

 

اما حال به سراغ راه حل بهتری برویم که در زبان پایتون برای ما قرار داده شده است، ما میتوانیم به جای ساخت یک فانکشن جدید از اپراتور های in و not in استفاده کنیم که خروجی آنها به صورت زیر میباشد.

>>> 5 in [2, 3, 5, 9, 7]
True
 
>>> 8 in [2, 3, 5, 9, 7]
False

_________________________

>>> 5 not in [2, 3, 5, 9, 7]
False
 
>>> 8 not in [2, 3, 5, 9, 7]
True

 

اگر به کد های بالا دقت کنیم متوجه میشوید که در دو بخش اول ما با استفاده از تابع ( in ) بررسی کرده ایم که آیا مقدار اولیه در مجموعه وجود دارد ، اما در دو مثال بعد سوال ما متفاوت است و اینگونه بیان شده است که آیا مقدار مورد نظر در مجموعه وارد شده وجود ندارد ؟ که در این حالت اگر مقدار در مجموعه نباشد پاسخtrue خواهد بود

استفاده از این اپراتور ها در ساختمان داده های مختلف :

در مثال های بالا شما با چگونگی استفاده از این دو عملگر داخل لیست ها به طور کامل آشنا شدید، حال بیایید تا به سراغ ساختمان داده های دیگر برویم و با هم نحوه استفاده از این عملگر ها را در آنها نیز یاد بگیریم

 

: تاپل ها و رنج

برای استفاده از این عملگر ها در یک تاپل یا یک محدوده رنج کافیست تا دقیقا مثل لیست ها عمل کنیم با این تفاوت که به جای لیست محدوده و یا تاپل مورد نظر خود را قرار میدهیم

.مثال زیر برای تاپل ها می باشد

>>> 5 in (2, 3, 5, 9, 7)

True

 

>>> 5 not in (2, 3, 5, 9, 7)

False

 

.و مثال های زیر برای استفاده از این عملگر در یک رنج یا محدوده خاص از اعداد میباشد

>>> 5 in range(10)

True

 

>>> 5 not in range(10)

False

 

>>> 5 in range(0, 10, 2)

False

 

>>> 5 not in range(0, 10, 2)

True

 

: دیکشنری ها

برای استفاده از این عملگرها در دیکشنری ها نیز دست ما باز است و میتوانیم با استفاده از آن عضو بودن یک مقدار را چک کنیم
برای مثال ما در زیر یک برنامه ای نوشته ایم که در آن یک دیکشنری وجود دارد، این دیکشنری شامل مقادیری است که نام کاربری و رمز عبور کاربر را در خود نگه میدارد، حال قصد داریم تا با استفاده از تابع
In چک کنیم که آیا اطلاعات وارد شده از سمت کاربر در دیکشنری ما وجود دارد یا خیر

username = input("Username: ")

password = input("Password: ")

 

users = [("john", "secret"), ("jane", "secret"), ("linda", "secret")]

 

if (username, password) in users:

    print(f"Hi {username}, you're logged in!")

else:

    print("Wrong username or password")

: در زیر میتوانیم خروجی مد نظر خود را مشاهده کنیم

Username: john

Password: secret

Hi john, you're logged in!

 

Username: tina

Password: secret

Wrong username or password

 

اگر در هنگام بررسی وجود یا عدم وجود یک مقدار در یک دیکشنری مقداری که مورد بررسی قرار میدهید به صورت کلید و مقدار نباشد، برنامه به صورت خودکار برای شما مقدار ورودی را در بین کلید ها جستجو می‌کند، مگر اینکه خود شما به برنامه دستور بدهید تا ورودی شما را در بین مقدار ها جستجو کند

>>> likes = {"color": "blue", "fruit": "apple", "pet": "dog"}

 

>>> "fruit" in likes

True

>>> "hobby" in likes

False

>>> "blue" in likes

False

در مثال های پایین 2 مورد اول مربوط به زمانی است که شما میخواهید بین کلید های یک دیکشنری جستجو انجام دهید و در ادامه میتوانید مثال هایی برای جستجو کردن بین مقدار های یک دیکشنری را مشاهده کنید

>>> "fruit" in likes.keys()

True

>>> "hobby" in likes.keys()

False

 

 

>>> "dog" in likes.values()

True

>>> "drawing" in likes.values()

False

 

: استرینگ یا رشته های متنی

ما همچنین میتوانیم از این قابلیت در استرینگ ها یا همان رشته های متنی نیز استفاده کنیم، انجام این کار به راحتی مراحل قبل بوده و مانند قبل هیچگونه پیچیدگی خاصی را شامل نمی‌شود

>>> text = "Hi, welcome to adak gostar!"

 

>>> "Hi" in text

True

>>> "Hi" not in text

False

 

>>> "Hello" in text

False

>>> "Hello" not in text

True

 

یک نکته مهم که باید آن را به خاطر داشته باشید این است که هنگام چک کردن یک استرینگ و عضو بودن یک مقدار در رشته متنی باید به بزرگ و کوچک بودن حروف دقت نمایید زیرا اگر حروف بزرگ کوچک باشد ممکن است پاسخ برای شما به درستی نمایش داده نشود

>>> text = "Hi, welcome to adak gostar!"

 

>>> "ADAK" in text

False

 

در این مقاله متوجه شدیم که با استفاده از توابع in  not in و میتوانیم در تمامی ساختمان های داده وجود یا عدم وجود یک مقدار را بررسی نماییم، امیدواریم که این مقاله به میزان کافی برای شما مفید واقع شده باشد

  • وبلاگ
  • برنامه نویسی
  • اپراتور
  • بررسی عضویت

تاکنون 0 دیدگاه ثبت شده است!

ارسال نظر شما

برای ثبت نظر ابتدا به حساب کاربری خود وارد شوید