همانطور که از نام عملگرهای مقایسهای مشخص است، به منظور مقایسه چند مقدار مختلف مورد استفاده قرار میگیرند. در این مطلب انواع این عملگرها و کاربردهای هر کدام را مقایسه کرده و همچنین روش کار با عملگرهای مقایسهای را در کلاسهای پایتون آموزش دادهایم. علاوه بر این، مفهوم سربارگذاری عملگرهای مقایسهای و مزایای این کار را نیز شرح دادهایم. همچنین روش پیادهسازی عملگرهای مقایسه لیستها را برای استفاده به منظور مقایسه لیست های پایتون و منظم کردن آنها نیز نمایش دادیم. در نهایت، مثالهای کاربردی و تمرینات مفید ارائه شده در این مطلب، دانش و مهارت لازم را برای بهکار بردن عملگرهای مقایسهای پایتون در پروژههای برنامهنویسی فراهم میکنند. با مطالعه مطالب زیر، دانش زیربنایی خود را درباره پایتون تقویت میکنید و تواناییهای کدنویسی خود را ارتقا میدهید. در این مطلب از مجله فرادرس به بررسی عملگر های مقایسه ای در پایتون و اهمیت آنها در نوشتن کدهای تمیز و کارآمد پرداختهایم. سعی کردیم که درک عمیقتری از ماهیت عملگرهای مقایسهای برای مخاطبان خود فراهم کنیم.
عملگر های مقایسه ای در پایتون چه هستند؟
عملگرهای مقایسهای پایتون، نمادهایی هستند که برای مقایسه بین دو یا چند مقدار مختلف بهکار برده میشوند. این عملگرها برای مقایسه عبارتها با یکدیگر براساس شرایط مشخص شده مورد استفاده قرار میگیرند. همیشه خروجی این نوع از عملگرها از نوع داده بولین (True یا False) است. عملگرهای مقایسهای، به دلیل مزایای بسیار مهمی که در ادامه فهرست کردهایم، جزو ابزارهای مهم در برنامهنویسی هستند.
- باعث ایجاد عبارتهای پیچیده برای بررسی شرایط خاص میشوند.
- ایجاد انشعابهای مختلف بر اساس ساختارهای شرطی متفاوت در برنامه را ممکن میکنند.
- به مدیریت حلقهها بر اساس حالتهای مختلف کمک میکنند.
انواع عملگر های مقایسه ای در پایتون و کاربردهای هر کدام
پایتون طیف وسیعی از عملگرهای مقایسهای را فراهم کرده است. هر کدام از این عملگرها منظور و کاربرد خاص خود را دارند. درک این عملگرها همراه با سینتکس و کاربردشان به برنامهنویسان در نوشتن کدهای خوانا و کارآمد کمک زیادی میکنند. در جدول زیر رایجترین عملگرهای مقایسهای پایتون را همراه با نماد و توضیح مختصری برای هر کدام نمایش دادهایم.
عملگر | نام | توصیف |
== | برابری | برابری مقادیر یا عملوندهای دو طرف عملگر را بررسی میکند. |
!= | نابرابری | نابرابر بودن مقادیر یا عملوندهای دو طرف عملگر را بررسی میکند. |
> | بزرگتر | بررسی میکند که آیا مقدار سمت چپ عملگر از مقدار سمت راست بزرگتر است یا نه. |
< | کوچکتر | بررسی میکند که آیا مقدار سمت چپ عملگر از مقدار سمت راست کوچکتر است یا نه. |
>= | بزرگتر یا مساوی | بررسی میکند که آیا مقدار سمت چپ عملگر از مقدار سمت راست بزرگتر یا مساوی با آن هست یا نه. |
<= | کوچکتر یا مساوی | بررسی میکند که آیا مقدار سمت چپ عملگر از مقدار سمت راست کوچکتر یا مساوی با آن هست یا نه. |
عملگرهای مقایسهای پایتون همراه با نوع دادههای مختلف مانند Integer-ها و Float-ها و String-ها قابل استفاده هستند. وقتی که مقادیر مختلف را با هم مقایسه میکنیم، پایتون سعی میکند که بهطور ضمنی آنها را به یکی از انواع داده رایج تبدیل کند. برای مثال وقتی که نوع داده عدد صحیحی را با نوع داده عدد اعشار مقایسه کنیم، مفسر پایتون مقدار نوع داده عدد صحیح را بهطور ضمنی به مقدار عدد اعشار معادل آن تبدیل میکند.
مثال
در مثال زیر، سعی میکنیم که دو مقدار از نوع داده Integer را با استفاده از عملگر بزرگتر با یکدیگر مقایسه کنیم.
اکنون در مثال پایین از عملگر برابری برای مقایسه دو مقدار از نوع داده Integer و Float استفاده کردهایم.
110 == 10.0 # True, as the integer 10 is implicitly converted to the float 10.0
به عنوان جواب، مقدار True
توسط مثال بالا از برنامه به بیرون ارسال میشود. زیرا همانطور که میبینید در این مثال پایتون عدد صحیح 10
را به عدد اعشار 10.0
تبدیل کرده و بعد از آن عمل مقایسه را انجام داده است.
در بعضی از موارد عملگرهای مقایسهای، میتوانند با مجموعه دادههایی مانند لیستها، تاپلها و رشتهها در پایتون نیز کار کنند. این مقایسهها بر اساس نظم حروف الفبا انجام میپذیرند. به این معنا که مقایسه بر اساس حروف الفبای تشکیل دهنده ترتیب عناصر درون مجموعه دادهها انجام میشود.
توجه: در زمان مقایسه رشتهها، پایتون کد مربوط به Unicode هر کاراکتر را مقایسه میکند. به همین دلیل، مقایسه بین حروف الفبای کوچک و بزرگ میتواند باعث بروز نتایج متفاوتی شود. زیرا شماره کد این کاراکترها با یکدیگر تفاوت دارد.
یادگیری پایتون با فرادرس
پایتون یکی از زبانهای برنامهنویسی سطح بالا، قدرتمند و بسیار پیشرو با کتابخانههای غنی است که تقریبا هر نوع پروژهای را میتوان به وسیله آن اجرا کرد. در صورتی که علاقهمند با شروع و افزایش مهارتهای خود در ارتباط با پایتون هستید با کمک مطالب موجود در مجله و سایت فرادرس به بهترین شکل ممکن میتوانید به این مباحث تسلط پیدا کنید. در سایت فرادرس فیلمهای آموزشی بسیار خوبی تهیه و ارائه شدهاند که حتی بعضا در عین داشتن کیفیت بالا به صورت رایگان نیز عرضه میشوند. فرادرس یکی از بزرگترین تولیدکنندگان محتوای آموزشی فارسی است و تمام تلاش خود را در جهت ارائه بهترین فیلمهای مربوط به انواع مباحث آموزشی با بیشترین کیفیت ممکن انجام میدهد.
در این بخش چند مورد از فیلمهای آموزشی فرادرس را در ارتباط با زبان برنامهنویسی قدرتمند و همهکاره پایتون معرفی کردهایم. در صورتی که علاقهمند به دیدن و آموختن بیشتر زبان پایتون از طریق فیلمهای آموزشی هستید میتوانید با کلیک بر روی تصویر بالا به صفحه اصلی این مجموعه آموزش منتقل شوید.
بررسی عملگرهای مقایسه ای پایتون در مبحث کلاس ها
فعالیت عملگر های مقایسه ای در پایتون فقط به نوع دادههای اصلی مانند Integer-ها و Float-ها و String-ها محدود نشده است. از این عملگرها میتوانیم برای مقایسههای ساده اشیا بین کلاسهای سفارشی نیز استفاده کنیم. برای تعریف روش رفتار این عملگرها با کلاسهای سفارشی ساخت برنامه نویسان نیز پایتون ابزار مخصوصی را تعریف کرده است. این کار را با پیادهسازی متدهای خاصی انجام میدهیم که به نام «متدهای جادویی» (Magic Methods) یا «Dunder Methods» معروف هستند.
نکته: کلمه Dunder مخفف دو کلمه Double و Underscore است. چون این متدهای جادویی در دو طرف نام خود دو عدد خط زیر یا Underscore دارند.
توجه: متدهای جادویی یا متدهای Dunder به متدهای خاصی میگویند که در کلاسهای سفارشی پایتون مورد استفاده قرار میگیرند. این متدها برای تعیین رفتار عملگرها و توابع پیش فرض در قبال اشیا کلاسهای سفارشی به کار برده میشوند.
برای استفاده از عملگرهای مقایسهای پایتون درون یک کلاس سفارشی، باید متدهای جادویی زیر را پیادهسازی کنیم.
متد جادویی | عملگر | توصیف |
__eq__(self, other) | == | رفتار عملگر «برابری» را تعریف میکند. |
__ne__(self, other) | != | رفتار عملگر «نابرابری» را تعریف میکند. |
__gt__(self, other) | > | رفتار عملگر «بزرگتر» را تعریف میکند. |
__lt__(self, other) | < | رفتار عملگر «کوچکتر» را تعریف میکند. |
__ge__(self, other) | >= | رفتار عملگر «بزرگترمساوی» را تعریف میکند. |
__le__(self, other) | <= | رفتار عملگر «کوچکترمساوی» را تعریف میکند. |
در زمان پیادهسازی این متدهای جادویی باید به خاطر داشته باشیم که برای روش مقایسه اشیای ساخته شده از کلاس سفارشی خودمان منطق مناسبی تعریف کنیم.
مثال
در این بخش برای مطلب بالا مثالی پیادهسازی کردهایم. در ابتدا باید کلاس شخصی خود را با نام Person
تعریف کنیم. سپس متدهای جادوی مطابق با عملگرهای برابری و نابرابری را تعریف میکنیم.
1class Person:
2 def __init__(self, age):
3 self.age = age
4
5 def __eq__(self, other):
6 if isinstance(other, Person):
7 return self.age == other.age
8 return NotImplemented
9
10 def __ne__(self, other):
11 result = self.__eq__(other)
12 if result is NotImplemented:
13 return NotImplemented
14 return not result
15
16person1 = Person(25)
17person2 = Person(30)
18person3 = Person(25)
19
20print(person1 == person2) # Outputs False
21print(person1 != person3) # Outputs False
همانطور که میبینید اکنون با کمک متدهای مقایسهای برابری و نابرابری میتوانیم نمونههای ساخته شده بر مبنای این کلاس را با یکدیگر مقایسه کنیم.
بهترین رویکردهای استفاده از عملگرهای مقایسه ای در کلاس ها
در هنگام کار با عملگرهای مقایسهای کلاسی، پیروی از این رویکردهای عالی، کارآمدی، انعطافپذیری و خوانایی بالای کدهای نوشته شده را تضمین میکند.
- برگرداندن NotImplemented: وقتی که در حال نوشتن متد مقایسهای هستیم، اگر واقعا نمیدانیم که اشیا ساخته شده از کلاس را چگونه باید با یکدیگر مقایسه کنیم، بهجای برگشت دادن خطای استثنا، بهتر است که NotImplemented برگردانیم. این عبارت به پایتون میگوید که از متد مقایسه شی دیگری استفاده کند. شاید آن متد مقایسه شی دیگر، روش مدیریت مقایسه بین اشیا فعلی را نیز بلد باشد.
- استفاده از روشهای پشتیبان برای مقایسه: در زمان پیادهسازی متدهای جادویی مانند __ne__(self, other)
یا __gt__(self, other)
بهتر است که برای شروع از متدهای مقایسهای متناظر آنها مانند __eq__(self, other)
یا __lt__(self, other)
استفاده کنیم. این کار باعث میشود که منطق تعریف شده در یکی از متدها با منطق تعریف شده در متد دیگر سازگار باشد.
- «متدهای درونی» (Built-In Methods) پایتون: با استفاده از توابع درونی super()
یا functools.total_ordering
میتوانیم عملیات پیادهسازی متدهای مقایسهای کلاسهای پایتون را سادهتر کنیم.
- بازسازی کدها | Code Refactoring: در زمان سفارشیسازی متدهای مقایسهای کلاسها در پایتون، بهترین کار این است که تمام منطق مقایسهای مورد نظر را درون متد جادویی قرار بدهیم. بهجای شلوغ کردن کلاس با متدهای اضافی برای مقایسه، باید بر روی پیادهسازی این متدهای جادویی تمرکز کنیم.
پیروی از این روشهای تایید شده، در زمان پیادهسازی عملگرهای مقایسهای در کلاسهای سفارشی، بهطرز چشمگیری بر روی کارایی، خوانایی و قابلیت نگهداری کدهای نوشته شده تاثیر مثبت میگذارد.
سربارگذاری عملگر های مقایسه ای در پایتون
سربارگذاری در پایتون، اشاره به امکان بازتعریف رفتار توابع یا عملگرهای مشخص شده دارد. با کمک بازتعریف این توابع یا عملگرها میتوان از ایشان در ارتباط با کلاسهای سفارشی نیز استفاده کرد. در زمینه عملگرهای مقایسهای، با کمک «سربارگذاری» (Overloading) میتوانیم اشیا مختلف از کلاسهای تعریف شده توسط برنامهنویس را با استفاده از نمادهای استاندارد این عملگرها با یکدیگر مقایسه کنیم. منظور از نمادهای استاندارد عملگرهای مقایسهای نمادهای ==
و !=
و >
و <
و >=
و <=
هستند.
برای سربارگذاری عملگر های مقایسه ای در پایتون، باید متدهای جادویی متناظر با هر عملگر را در کلاس خود تعریف کنیم. همانطور که قبلا یادآور شدیم، هر عملگر مقایسهای با یک متد جادویی همراه شده که باید درون کلاس پیادهسازی شود.
مثال
به عنوان مثال، در کلاس سفارشی ساخت خودمان به نام Book
، عملگر مقایسهای برابری ==
را برای مقایسه بین تیتر نمونههای ساخته شده از این کلاس، سربارگذاری میکنیم.
1class Book:
2 def __init__(self, title):
3 self.title = title
4
5 def __eq__(self, other):
6 if isinstance(other, Book):
7 return self.title.lower() == other.title.lower()
8 return NotImplemented
9
10book1 = Book("Python Programming")
11book2 = Book("python programming")
12
13print(book1 == book2) # Outputs True, since the titles are the same (ignoring case)
مزایا و کاربردهای سربارگذاری عملگر های مقایسه ای در پایتون
سربارگذاری عملگر های مقایسه ای در پایتون برای کاربردهای زیادی ضروری است. در این بخش چند سناریو رایج را نمایش دادهایم که در آنها سربارگذاری عملگرها نقش اساسی بازی میکند.
- منظم کردن و مقایسه اشیا ساخته شده از کلاسها: سربارگذاری عملگرهای مقایسهای به سادگی در چیدن و مقایسه اشیا ساخته شده از کلاسها کمک میکند. با استفاده از این عملگرهای سربارگذاری شده میتوانیم عملیات گفته شده را با کمک توابع درونی مانند sorted()
و max()
و min()
انجام دهیم. این امکان در زمان استفاده از لیستهای پایتون یا سایر مجموعه دادههای متشکل از اشیا ساخته شده از کلاس بسیار مفید است.
- «ساختمانهای داده» (Data Structures): سربارگذاری عملگرهای مقایسهای به توسعه ساختارهای ساختمان داده پیچیده کمک میکند. ساختمان دادههایی مانند صفهای اولویتدار یا درخت جست وجوی باینری نیاز به عملیات مقایسه سفارشی بین اشیا خاص خود دارند.
- «شرایط منطقی» (Logical Conditions): پیادهسازی عملگرهای مقایسهای برای کلاسهای سفارشی، باعث ساده شدن پیادهسازی شرایط منطقی مانند عبارت if و حلقه while پایتون در ساختارهای کنترلی میشود.
- آزمایش کردن و «خطایابی» (Debugging): سربارگذاری عملگر های مقایسه ای در پایتون در طول اجرای عملیات مربوط به آزمایش و خطایابی کدها نیز میتواند بسیار مفید باشد. با فراهم کردن امکان مقایسه مستقیم اشیا، تجزیه و تحلیل و شناسایی تعارض در کدها به سادگی ممکن میشود.
علاوه بر مطالب بالا، سربارگذاری عملگر های مقایسه ای در پایتون چندین مزیت مختلف نیز ارائه میدهد که به صورت کلی باعث ارتقا کیفیت کدها میشود.
- «انعطافپذیری» (Flexibility): سربارگذاری عملگرهای مقایسهای، انعطافپذیری بیشتری به کدهای نوشته شده میبخشد. به این صورت که باعث سازگاری رفتار این عملگرها متناسب با نیازهای خاص برنامه میشود.
- «خوانایی» (Readability): با فراهم کردن روش استانداردی برای مقایسه اشیا با یکدیگر، کد را بسیار شهودیتر و قابل درکتر میکند. به این صورت سربارگذاری عملگرهای مقایسهای باعث افزایش خوانایی در کدها میشود.
- «قابلیت نگهداری» (Maintainability): پیادهسازی عملگرهای مقایسهای سربارگذاری شده درون کلاسهای سفارشی، تضمین میکند که منطق مورد نظر برای مقایسه اشیا، درون کلاسها کپسوله شود و باعث سادگی نگهداری و بهروزرسانی کدها میشود.
بهطور خلاصه، سربارگذاری عملگرهای مقایسهای یکی از تکنیکهای ضروری برای کار با کلاسهای سفارشی در پایتون است. این تکنیک مزایای بیشماری مانند انعطافپذیری، خوانایی و قابلیت نگهداری بیشتر کدها را فراهم میکند. تسلط به سربارگذاری عملگرهای مقایسهای در زمان درگیر شدن با مسئلههای برنامهنویسی پیچیده به صورت موثر و کارآمدی به کمک برنامهنویسان میآید.
بررسی عملگرهای مقایسه ای پایتون در مبحث لیست ها
لیستها یکی از قدرتمندترین و پرکاربردترین ساختارهای داده درون زبان پایتون هستند. عملگرهای مقایسهای پایتون در کار با لیستها نقش بسیار مهمی را ایفا میکنند. با کمک پیادهسازی عملگرهای مقایسهای پایتون برای لیستها میتوانیم عناصر درون ساختار داده را با یکدیگر مقایسه کنیم. همچنین میتوانیم وظایف مربوط به کار با دادهها مانند چیدن منظم و جستوجو در میان دادهها را به سادهترین شکل ممکن انجام دهیم.
در صورت تمایل به آشنایی بیشتر با مبحث لیستها در پایتون و شناخت انواع عملیات قابل ارائه بر روی این لیستها، پیشنهاد میکنیم که مطلب آموزش از صفر تا صد کار با لیست در پایتون از مجله فرادرس را مطالعه کنید.
چگونه عملگرهای مقایسه ای لیست را در پایتون پیاده سازی کنیم؟
برای مقایسه لیستها در پایتون میتوانیم از همان عملگرهای مقایسهای درونی استفاده کنیم که برای سایر نوعهای داده بهکار میبریم، عملگرهایی مانند ==
و !=
و >
و <
و >=
و <=
. این عملگرها به برنامهنویسان برای مقایسه لیستهای مختلف یا حتی عناصر درون لیست یکسان کمک میکنند.
در ادامه چند نکته کلیدی را برای بخاطر سپردن، درباره عملگرهای مقایسهای لیستها فهرست کردهایم.
- عملگرهای مقایسهای بر روی لیستها به صورت عنصر به عنصر کار میکنند. یعنی اینکه پایتون عملیات مقایسه عناصر موجود در هر دو لیست را به صورت متناظر باهم از ایندکس اول شروع میکند.
- بعضی وقتها عملیات مقایسه بین عناصری از جنس نوع دادههای متفاوت درون لیست یکسان انجام میگیرد. در چنین مواقعی پایتون از قوانین مربوط به سلسله مراتب بین انواع داده برای عملیات مقایسه پیروی میکند. برای مثال نوع داده Integer کمتر از نوع داده Float در نظر گرفته میشود.
- برای مقایسه چندین عنصر مختلف در هر لیستی میتوانیم عملگرهای مقایسهای را با عملگرهای منطقی مانند and
و or
ترکیب کنیم.
- شاید بخواهیم که عملیات مقایسهای را بهصورت سفارشی بین لیستهایی شامل اشیا کلاسهای سفارشی پیادهسازی کنیم. در چنین مواردی باید مطمئن شویم که کلاس سفارشیمان شامل متد جادویی مناسب برای پیادهسازی عملگر مقایسهای مورد نظر باشد.
استفاده از عملگرهای مقایسهای پایتون در لیستها در تعداد بیشماری از پروژههای مربوط به دنیای واقعی ضروری است. بهخصوص پروژههایی که مربوط به «تجزیه و تحلیل داده» (Data Analysis) هستند. در چنین پروژههایی مقایسه و اصلاح چیدمان عناصر درون لیستها یکی از رایجترین وظایف است.
مقایسه و اصلاح چیدمان عناصر درون لیست های پایتون
مقایسه و اصلاح چیدمان عناصر درون لیستهای پایتون یکی از عملیات بنیادین برای کار با دادهها است. چندین روش مختلف برای اجرای این عملیات وجود دارند که چهار مورد از بهترین روشها را در ادامه فهرست کردهایم.
- استفاده از تابع درونی sorted()
: این تابع لیست جدیدی با چیدمان منظم را از روی عناصر شی پیمایشپذیر داده شده برمیگرداند. تابع sorted()
آرگومانهای اختیاری مانند «key» -برای تایین منطق سفارشی چیدمان- و «reverse» -برای چیدن لیست با ترتیب نزولی- را میپذیرد.
- استفاده از sort()
در متدهای لیست در پایتون: متد مرتبسازی sort()
یکی از متدهای مناسبی است که فقط بر روی اشیایی از کلاس list()
قابل فراخوانی است. همانند متد sorted()
این متد نیز آرگومانهای اختیار key و reverse را میپذیرد.
- استفاده از عملگرهای مقایسهای برای مقایسه عنصر به عنصر: میتوانیم از عملگرهای مقایسهای -مانند ==
و !=
و >
و <
و >=
و <=
– بین لیستها یا عناصر لیستها برای تعیین رابطه بین آنها استفاده کنیم. در زمان مقایسه لیستها، پایتون لیستها را بر اساس حروف الفبا با بررسی دقیق عناصر از چپ به راست با یکدیگر مقایسه میکند.
- استفاده از توابع lambda
برای پیادهسازی منطق مقایسهای پیچیده: در بعضی از سناریوها منطق پیشفرض Sort و مقایسه برای اجرای پروژه کافی نیست. در چنین سناریوهایی میتوانیم از تابع lambda
برای ساخت منطق ترکیبی با استفاده از توابع sorted()
یا sort()
استفاده کنیم. با استفاده از تابع lambda
در آن واحد میتوان تابعی را تعریف کرد که بلافاصله بعد از اجرای عملیات نیز حذف میشود. از این تکنیک برای تعریف منطق سفارشی مرتبسازی نیز میتوان استفاده کرد.
مثال
در این مثال میخواهیم لیستی از اعداد صحیح را با یکدیگر مقایسه کنیم و سپس چیدمان لیست را مرتب کنیم.
1a = [3, 4, 5]
2b = [1, 2, 3]
3c = [3, 4, 5]
4
5print(a == b) # Outputs False
6print(a == c) # Outputs True
7
8sorted_list = sorted(b)
9print(sorted_list) # Outputs [1, 2, 3]
10
11b.sort(reverse=True)
12print(b) # Outputs [3, 2, 1]
عملگرهای مقایسهای لیستها در پایتون و انواع تکنیکهای مرتبسازی برای کار با دادهها به صورتی کارآمد کیفیت کدها را ارتقا میبخشند. تسلط به این عملگرها و تکنیکها برای ارتقا کیفیت برنامهنویسی موثر و ضروری است. با کمک این توانایی میتوانیم وظایف پیچیدهای را به سادگی انجام دهیم در عین حال از چندکاره بودن و خوانایی کدهای خود نیز مطمئن بمانیم.
مثال عملگر های مقایسه ای در پایتون
درک کامل عملگر های مقایسه ای در پایتون برای یادگیری نوشتن کدهای موثر و کارآمد بسیار ضروری است. بهترین روش برای تسلط به این مفهوم بازبینی مثالهای عملی و تمرینات کاربردی است که استفاده از این عملگرها را در سناریوهای گوناگون نمایش میدهند. با این روش برای مدیریت وظایف پیچیده و چالشهایی که در مسیر کدنویسی برایمان پیش میآیند مجهزتر خواهیم بود.
مثال های عملی درباره عملگر های مقایسه ای در پایتون
در این بخش برای پوشش دادن جنبههای مختلفی از عملگر های مقایسه ای در پایتون، چندین مثال مختلف را پیادهسازی کردهایم. این مثالها روش استفاده از عملگرهای مقایسهای را نمایش میدهند و برای درک کاربردهای این عملگرها در دنیای واقعی به برنامهنویسان کمک میکنند.
- مقایسه دادههای Integer: مقایسه مقادیر عددی هنوز یکی از وظایف اصلی برای برنامهنویسها محسوب میشود. در این مثال دو مقدار Integer با نام A
و B
را با یکدیگر مقایسه کردهایم.
1A = 10
2B = 5
3result = A > B # Outputs True
چون مقدار 10
از 5
بزرگتر است در این برنامه خروجی مقدار True
خواهد بود.
- مقایسه دادههای رشتهای: با استفاده از عملگرهای مقایسهای پایتون میتوانیم مقادیر رشتهای را نیز با یکدیگر مقایسه کنیم. این تکنیک در زمان جستوجو به دنبال الگوهای خاص متنی یا مرتبسازی دادههای متنی بسیار مفید است. در مثال پیادهسازی شده زیر مقایسه دو مقدار رشتهای را نمایش دادهایم.
1str1 = "apple"
2str2 = "orange"
3result = str1 < str2 # Outputs True
از آنجا که کلمه apple
از لحاظ ترتیب حروف الفبایی قبل از کلمه orange
میآید، خروجی این برنامه هم برابر با True
خواهد بود.
- مقایسه لیستها: در پایتون، با استفاده از عملگرهای مقایسهای میتوان بهسادگی لیستها را با یکدیگر مقایسه کرد. آیتمهای درون لیست به صورت عنصر به عنصر بر اساس حروف الفبا با یکدیگر مقایسه میشوند. در مثال نمایش داده شده پایین یک جفت لیست را با یکدیگر مقایسه کردهایم.
1list1 = [1, 2, 3]
2list2 = [1, 2, 4]
3result = list1 < list2 # Outputs True
چونکه 3 < 4
برقرار است، به عنوان اولین اختلاف در مقایسه عنصر به عنصر، پس در خروجی مقدار True
نمایش داده میشود.
تمرینات ساده ای برای عملگر های مقایسه ای در پایتون
در بخش قبل چندین مثال کاربردی را پوشش دادیم. میخواهیم با ارائه چند تمرین ساده دیگر برای انجام دادن توسط خودتان به صورت عمیقتری به مسئله عملگرهای مقایسهای پایتون بپردازید.
- مقایسه اشیا سفارشی: کلاس سفارشی به نام Student
با خصوصیات name
و age
را ایجاد کنید. متد جادویی مناسب را برای مقایسه اشیا کلاس Student
با عملگر برابری ==
پیادهسازی کنید. سپس دو شی از کلاس Student
را با نام یکسان و سن متفاوت با یکدیگر مقایسه کنید.
- ترکیب عملگرهای مقایسهای و منطقی: برنامه پایتونی بنویسی که برابری بین عناصر دو لیست مختلف را بررسی کند. قوانین زیر را در نظر بگیرید.
- A == B
به معنای این است که عناصر با ایندکس یکسان در لیستهای مختلف با یکدیگر برابر هستند.
- A != B
به معنای این است که عناصر با ایندکس یکسان در لیستهای مختلف با یکدیگر برابر نیستند.
- برنامه خود را با لیستهای مختلفی آزمایش کنید و نتیجه نهایی را در خروجی نمایش دهید.
- A == B
- مرتبسازی لیستها با چندین مولفه: لیستی از تاپلها بسازید که شامل اطلاعاتی مانند نام کتاب، نویسنده و سال انتشار، درباره کتابهای مختلف باشد. برنامه پایتونی برای مرتب کردن این لیست با توجه به معیارهای زیر بنویسید.
- اولویت مرتبسازی باید بر اساس نام نویسنده با ترتیب حروف الفبا باشد.
- اولویت دوم باید بر اساس سال انتشار کتاب به صورت صعودی باشد.
- از متدهای درونی پایتون مانند sorted()
یا sort()
و منطق سفارشی پیادهسازی خودتان با استفاده از تابع lambda
استفاده کنید.
- از متدهای درونی پایتون مانند sorted()
کار کردن با این تمرینات دمه دستی به برنامهنویسان برای راحت شدن در کار با عملگرهای مقایسهای پایتون در موقعیتهای مختلف کمک زیادی میکنند. با درک روش کار این عملگرها میتوانید کدهای کارآمدتری بنویسید و با چالشهای پیچیده برنامهنویسی به سادگی روبهرو شوید.
آموزش تخصصی پایتون همراه با فرادرس
برای اینکه بر روی کار با زبان برنامه نویسی پایتون تخصص بیشتری کسب کنید، یکی از گزینههای پیش روی مخاطبان عزیزمان استفاده از مجموعه آموزش پایتون برای نوجوانان است. فیلمهای این مجموعه آموزش با حساسیت بالا بر روی کیفیت به منظور پاسخگویی بر روی نیازهای مخاطبانی طراحی شده که از دوره مقدماتی آشنایی با پایتون در حال عبور به دورههای حرفهایتر هستند.
به این منظور چند دوره پیشنهادی را در ادامه فهرست کردهایم. اما در صورتی که تمایل به دیدن فیلمهای آموزشی بیشتری در این زمینه دارید میتوانید با کلیک بر روی تصویر بالا به صفحه اصلی مجموعه آموزش رفته و سایر فیلمهای آموزشی در دسترس را نیز مشاهده کنید.
جمع بندی
عملگر های مقایسه ای در پایتون، نمادهایی هستند که برای مقایسه مقادیر مختلف با هم بهکار برده میشوند. این عملگرها به عنوان جواب مقداری از جنس Boolean برمیگردانند. انواع رایج این عملگرها برابری ==
، نابرابری !=
، بزرگتر >
، کوچکتر <
، بزرگترمساوی >=
و کوچکترمساوی <=
هستند. عملگرهای مقایسهای کلاسی در پایتون، متدهای جادویی هستند که نحوه رفتار این عملگرها را در تقابل با اشیا ساخته شده از هر کلاس تعریف میکنند. حتی کلاسهای که به صورت سفارشی توسط کاربر تعریف شده باشند میتوانند رفتار عملگر مقایسهای مختص به خود را داشته باشند. به بازتعریف رفتار عملگرهای کلاسی برای مقایسه اشیا ساخته شده توسط کلاس، سربارگذاری عملگر میگویند. عملگرهای مقایسه در ارتباط با لیستهای پایتونی، از نمادها و عملگرهای درونی پایتون برای مقایسه لیستها یا عناصر درون لیستها با یکدیگر استفاده میکنند.
در این مطلب از مجله فرادرس با انواع عملگرهای مقایسهای و موارد استفاده هر کدام بهطور کامل آشنا شدیم. برای اجرای برنامههای کارآمد، سریع و خوانا لازم است که بر کار با این عملگرها تسلط پیدا کنیم مخصوصا اگر به تولید برنامههای با محاسبات ریاضی علاقهمند هستیم.
source