رشن | خدمات میزبانی وب

انواع اپراتور یا عملگر

در زبان‌های برنامه‌نویسی چند دسته اپراتور یا عملگر داریم که دسته‌های مختلف در پایتون را مینویسیم:

  • اپراتور ریاضی (Arithmetic)
  • اپراتور تخصیص (Assignment)
  • اپراتور مقایسه‌ای (Comparison)
  • اپراتور منطقی (Logical)
  • اپراتور Identity
  • اپراتور Membership
  • اپراتور بیتی (Bitwise)


اپراتور ریاضی

اپراتورناممثالحاصل
+جمع7+29
-تفریق7-25
*ضرب2*714
/تقسیم7/23.5
%باقی‌مانده7%21
**توان2**79
//جزء صحیح تقسیم2//73


اپراتور تخصیص

اپراتور تخصیص یا Assignment همانند اسمش، مقداری را به متغیری در حافظه اختصاص می‌دهد.

اپراتورمثالبرابر باحاصل
=x = 7x = 77
=+x += 2x = x + 29
=-x -= 2x = x - 25
=*x *= 2x = x * 214
=/x /= 2x = x / 23.5
=%x %= 2x = x % 21
=//x //= 2x = x // 23
=**x **= 2x = x ** 249
=&x &= 2x = x & 22
=|x |= 2x = x | 27
=^x ^= 2x = x ^ 25
=>>x <<= 2x = x << 228
=<<x <<= 2x = x >> 21


اپراتور مقایسه‌ای

این اپراتور دو طرف را با هم مقایسه می‌کند.

اپراتورناممثالحاصل
==مساوی5 == 3False
=!نامساوی5 =! 3True
<بزرگ‌تر5 < 3False
>کوچک‌تر5 > 3True
=<کوچک‌تر مساوی5 =< 3True
=>بزرگ‌تر مساوی5 => 3False


اپراتور منطقی

از این اپراتور برای ترکیب عبارات شرطی استفاده می‌شود.

اپراتورتوضیحمثالحاصل
andدر صورت برابر بودن دو شرط، مقدار صحیح برمی‌گرداندx < 5 and x < 10True
orدر صورت صحیح بودن یکی از شرط‌ها مقدار صحیح برمی‌گرداندx < 5 or x < 4True
notحاصل را برعکس می‌کند، اگر حاصل صحیح باشد غلط بر‌گرداندnot (x < 5 and x < 10)False


اپراتور Identity

این اپراتور، هویت و اصالت دو شئ را دقیقا با هم مقایسه می‌کند که نه تنها دقیقا یک شئ باشند و مقدار یکسان داشته باشند، بلکه در حافظه هم جایگاه یکی داشته باشند.

نامتوضیحمثالحاصل
isدر صورتی که هر دو متغیر از یک شئ باشند مقدار صحیح برمی‌گرداندx is yTrue
is notدر صورتی که هر دو متغیر از یک شئ نباشند مقدار صحیح برمی‌گرداندx is not yTrue


برای درک بهتر این اپراتور، این برنامه را در نظر بگیرید:

Python
  1. x = ['apple', 'banana']
  2. y = ['apple', 'banana']
  3. z = x

حالا می‌خواهیم خروجی این سه دستور را ببینیم:

Python
  1. print (x is z)
  2. print (x is y)
  3. print (x == y)

با توجه به این که هر سه تا متغیر مقدار یکسانی دارند احتمالا باید خروجی هر سه عبارت True باشد، اما در حقیقت این‌طور نیست. با هم بررسی می‌کنیم که چرا نیست.

در عبارت اول گفتیم که آیا x با z برابر هست یا خیر.

از آن جایی که لاین سوم گفتیم x = z، بنابراین x دقیقا همان مقدار z را دارد و جایگاهش در حافظه دقیقا همان جایگاه x هست، بنابراین عبارت اول مقدار صحیح دارد.

عبارت دوم گفتیم اگر x و y هم یکی هستند خروجی برگرداند اما در اصل مقدار False برمی‌گرداند چرا که جایگاهی که x در حافظه دارد با جایگاهی که y در حافظه دارد با هم متفاوت هستند. x یک سری خانه در حافظه به خودش اختصاص داده که با خانه‌هایی که y دارد متفاوت است و بنابراین پرینت x is y برابر می‌شود با False. در حقیقت is نه تنها کاری به محتوا ندارد که یکی باشند، بلکه جایگاه در حافظه را هم بررسی می‌کند.

اما خروجی پرینت آخر True می‌شود چرا که == صرفا محتوا را تطبیق می‌دهد و کاری به جایگاه حافظه ندارد.

بنابراین خروجی برنامه به این صورت می‌شود:

Code
  1. True
  2. False
  3. True


اپراتور Membership

این اپراتور چک می‌کند اگر عبارت یا مقداری در یک متغیر وجود دارد و مقدار صحیح یا غلط نشان می‌دهد.

اپراتورتوضیحمثال
inوجود داشتن یک یا چند مقدار را داخل اشیاء چک می‌کند و مقدار بولین برمی‌گرداندx in y
not inوجود نداشتن یک یا چند مقدار را داخل اشیاء چک می‌کند و مقدار بولین برمی‌گرداندx not in y


این را هم بگذارید مثالی بزنیم. برنامه زیر را در نظر بگیرید:

Python
  1. x = ['apple', 'banana']
  2. print ('banana' in x)

به دلیل این که عبارت 'banana' عضو متغیر x هست پس انتظار داریم که مقدار صحیح بولین را در خروجی ببینیم.

خروجی:

Code
  1. True

و اپراتور not in هم دقیقا به همین صورت است. کد زیر را در نظر بگیرید:

Python
  1. print ('peach' not in x)

چون عبارت 'peach' عضو x نیست بنابراین این انتظار داریم خروجی False را در صفحه نمایش مشاهده کنیم.

خروجی:

Code
  1. False


اپراتور بیتی

اپراتور بیتی یا Bitwise