درک تفاوت عملگر == و is در پایتون

 
Please login to bookmark Close

همانطور که یک کیلوگرم سیب و یک کیلوگرم گلابی وزن برابر و جنس متفاوتی دارند، عدد صحیح 1 و عدد اعشاری 1.0 هم مقدار برابر ولی جنس متفاوتی دارند.

عملگر is در پایتون به‌طور خاص برای مقایسه هویت اشیا طراحی شده است و با عملگر == که برای مقایسه مقادیر استفاده می‌شود، تفاوت‌های مهمی دارد. در ادامه، به بررسی دقیق عملگر is، کاربردهای آن و تفاوت‌هایش با سایر عملگرها می‌پردازم اما قبل از آن بهتر است نیم‌نگاهی به تابع id() داشته باشیم.

تابع id()

این تابع یک شی را به عنوان ورودی می‌گیرد و آدرس آن در حافظه رم را در قالب یک عدد برمی‌گرداند.

name = 'CodeBaz.dev'
print(id(name)) # output: 133707097800880

اگر دو متغیر را به این تابع ارسال کنیم و برای هر دو خروجی یکسانی داشته باشیم درواقع هر دو متغیر به یک شی در حافظه اشاره می‌کنند.

name = 'CodeBaz.dev'
name2 = 'CodeBaz.dev'
print(id(name))  # output: 133707097800880
print(id(name2)) # output: 133707097800880

درک رفتار عملگر is

عملگر is بررسی می‌کند که آیا دو متغیر به یک شیء مشابه در حافظه اشاره می‌کنند یا خیر. به بیان ساده:

  • اگر دو متغیر به یک مکان یکسان در حافظه اشاره کنند، نتیجه is برابر با True است.
  • اگر دو متغیر به اشیاء متفاوتی (حتی با مقادیر یکسان) اشاره کنند، نتیجه is برابر با False خواهد بود.
x = [1, 2, 3]
y = x
z = [1, 2, 3]

print(x is y)  # خروجی: True
print(x is z)  # خروجی: False

در این مثال، x و y به یک لیست مشابه در حافظه اشاره می‌کنند، اما z یک لیست جداگانه است که صرفاً مقدارش با x برابر است.

تفاوت is و ==

  • is بررسی می‌کند که آیا دو متغیر دقیقاً به یک شیء اشاره می‌کنند.
  • == بررسی می‌کند که آیا مقادیر دو شیء برابر هستند یا خیر.
 = [1, 2, 3]
y = [1, 2, 3]

print(x == y)  # خروجی: True (چون مقادیرشان برابر است)
print(x is y)  # خروجی: False (چون به اشیاء متفاوتی اشاره می‌کنند)

نکته مهم

  • از is برای مقایسه مقدار استفاده نکنید. همیشه از == برای مقایسه مقادیر استفاده کنید.
 
Please login to bookmark Close
نظرات

دیدگاهتان را بنویسید

فهرست مطالب

تنظیمات

انتخاب زبان
تغییر تم

جستجو

لغو عضویت خبرنامه

برای لغو عضویت در خبرنامه لطفا ایمیل خود را وارد کنید.

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

Why we should use VPN?

I upload all CodeBaz videos and podcasts on platforms such as YouTube and SoundCloud, which are often restricted in Iran.

Most tutorials come with both video and podcast formats. Therefore, if you want to make the most out of the site’s content, you will need to use a VPN.

Please note that for shopping in the store, it’s better to turn off your VPN to avoid issues with payment and banking connections.

Why you should use VPN?

I upload all CodeBaz videos and podcasts on platforms such as YouTube and SoundCloud, which are often restricted in Iran.

Most tutorials come with both video and podcast formats. Therefore, if you want to make the most out of the site’s content, you will need to use a VPN.

Please note that for shopping in the store, it’s better to turn off your VPN to avoid issues with payment and banking connections.

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.