چالش روزانه · ۱۶ آبان ۱۴۰۵
چالش پایتون ۲۰: == یا is؟
قبل از اجرای کد، خروجی آن را پیشبینی کن. حدس نزن؛ خط به خط فکر کن پایتون چه میکند.
a = [1, 2]
b = [1, 2]
c = a
print(a == b, a is b, a is c)نمایش پاسخ و توضیح
پاسخ درست: گزینهٔ د — True False True
گام به گام
==محتوا را مقایسه میکند: آیا عنصرها یکیاند؟isهویت را مقایسه میکند: آیا هر دو نام به همان شیء در حافظه اشاره میکنند؟
a == b → True (محتوای یکسان)
a is b → False (دو لیست جدا در حافظه)
a is c → True (c فقط نام دوم a است)
جواب: True False True
کِی is بنویسیم؟
تقریباً همیشه ==. تنها جای رایج is مقایسه با None است: if x is None:.
a = [1, 2]
b = [1, 2]
print(id(a), id(b)) # دو عدد متفاوت
(درس متدهای لیست: چاپ یکسان یعنی برابری، نه یکیبودن)
حالا خودت اجرا کن و تغییرش بده
a = [1, 2]
b = [1, 2]
c = a
print(a == b, a is b, a is c)