آموزش جامع عملگرهای مقایسهای در پایتون
🎯 اهداف یادگیری
- درک مفهوم عملگرهای مقایسهای و کاربرد آنها
- شناخت انواع عملگرهای مقایسهای در پایتون
- یادگیری مقایسه اعداد، رشتهها و سایر انواع داده
- آشنایی با زنجیرهای کردن مقایسهها
- یادگیری تفاوت بین عملگرهای "==" و "is"
📌 مقدمهای بر عملگرهای مقایسهای
عملگرهای مقایسهای برای مقایسه دو مقدار استفاده میشوند و نتیجه مقایسه را به صورت یک مقدار بولین (True یا False) برمیگردانند. این عملگرها پایه و اساس ساختارهای شرطی و تصمیمگیری در پایتون هستند.
📌 انواع عملگرهای مقایسهای
پایتون عملگرهای مقایسهای مختلفی را ارائه میدهد:
python
# عملگر تساوی (==)a, b = 5, 5print(a == b) # خروجی: True# عملگر نامساوی (!=)x, y = 10, 20print(x != y) # خروجی: True# عملگر بزرگتر از (>)print(15 > 10) # خروجی: True# عملگر کوچکتر از (<)print(8 < 12) # خروجی: True# عملگر بزرگتر یا مساوی (>=)print(10 >= 10) # خروجی: True# عملگر کوچکتر یا مساوی (<=)print(5 <= 7) # خروجی: True
جدول عملگرهای مقایسهای:
عملگر | توضیح | مثال | نتیجه |
---|---|---|---|
== | مساوی بودن مقادیر | 5 == 5 | True |
!= | نامساوی بودن مقادیر | 5 != 3 | True |
> | بزرگتر از | 7 > 5 | True |
< | کوچکتر از | 3 < 5 | True |
>= | بزرگتر یا مساوی | 7 >= 7 | True |
<= | کوچکتر یا مساوی | 4 <= 5 | True |
📌 مقایسه رشتهها و سایر انواع داده
عملگرهای مقایسهای نه تنها برای اعداد، بلکه برای سایر انواع داده مانند رشتهها نیز کاربرد دارند:
python
# مقایسه رشتهها (بر اساس ترتیب الفبایی)print("apple" < "banana") # خروجی: Trueprint("apple" == "Apple") # خروجی: False (حساس به حروف بزرگ و کوچک)# مقایسه بولینهاprint(True == False) # خروجی: Falseprint(True != False) # خروجی: True# مقایسه لیستهاlist1, list2 = [1, 2, 3], [1, 2, 4]print(list1 == list2) # خروجی: False
نکات مهم در مقایسه رشتهها:
- ترتیب الفبایی: رشتهها بر اساس کدهای ASCII/Unicode مقایسه میشوند
- حساسیت به حروف: مقایسه رشتهها به بزرگی و کوچکی حروف حساس است
- مقایسه طول: ابتدا حرف اول مقایسه میشود، اگر مساوی بود به حرف بعدی میرود
📌 زنجیرهای کردن مقایسهها
در پایتون میتوان چندین مقایسه را به صورت زنجیرهای انجام داد:
python
# مقایسه زنجیرهایx = 10print(5 < x < 15) # خروجی: True (معادل 5 < x and x < 15)age = 25print(18 <= age <= 30) # خروجی: True# مقایسه زنجیرهای پیچیدهترa, b, c = 5, 10, 15print(a < b < c) # خروجی: True
مزایای مقایسه زنجیرهای:
- خوانایی بیشتر: کد تمیزتر و قابل فهمتر میشود
- کارایی بهتر: در برخی موارد از ارزیابی اضافی جلوگیری میکند
- کاهش خطا: احتمال خطای منطقی کاهش مییابد
📌 تفاوت بین "==" و "is"
یکی از نکات مهم در پایتون تفاوت بین عملگر "==" (بررسی تساوی مقدار) و "is" (بررسی یکسان بودن شیء) است:
python
# مقایسه با == (تساوی مقدار)list1 = [1, 2, 3]list2 = [1, 2, 3]list3 = list1print(list1 == list2) # خروجی: True (مقادیر یکسان هستند)print(list1 is list2) # خروجی: False (اشیاء متفاوت هستند)print(list1 is list3) # خروجی: True (هر دو به یک شیء اشاره میکنند)# استثنا: اعداد کوچک و رشتههای کوتاه (بهینهسازی پایتون)a = 5b = 5print(a is b) # خروجی: True (بهینهسازی پایتون برای اعداد کوچک)
تفاوتهای کلیدی:
- == (تساوی): بررسی میکند که آیا مقادیر دو شیء یکسان هستند
- is (هویت): بررسی میکند که آیا دو متغیر به یک شیء در حافظه اشاره میکنند
- کاربرد is: معمولاً برای مقایسه با None استفاده میشود (if x is None)
📌 مقایسه با مقدار None
برای بررسی وجود مقدار None همیشه از عملگر is استفاده کنید:
python
x = Noney = 5# روش صحیحif x is None: print("x مقدار ندارد")# روش نادرست (اگر x کلاس داشته باشد که __eq__ را بازنویسی کرده باشد)if x == None: print("این روش توصیه نمیشود")# بررسی عدم وجود مقدارif y is not None: print("y مقدار دارد")
📌 تمرینهای عملی
حالا نوبت شماست! کدهای زیر را بررسی کنید و نتیجه را پیشبینی کنید:
python
# تمرین ۱a = 10b = 5 * 2print(a == b)# تمرین ۲name1 = "Python"name2 = "python"print(name1 != name2)# تمرین ۳x = 15print(10 < x <= 20)