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

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

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

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

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

اپراتور نام مثال حاصل
+ جمع 7+2 9
- تفریق 7-2 5
* ضرب 2*7 14
/ تقسیم 7/2 3.5
% باقی‌مانده 7%2 1
** توان 2**7 9
// جزء صحیح تقسیم 2//7 3

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

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

اپراتور مثال برابر با حاصل
= x = 7 x = 7 7
=+ x += 2 x = x + 2 9
=- x -= 2 x = x - 2 5
=* x *= 2 x = x * 2 14
=/ x /= 2 x = x / 2 3.5
=% x %= 2 x = x % 2 1
=// x //= 2 x = x // 2 3
=** x **= 2 x = x ** 2 49
=& x &= 2 x = x & 2 2
=| x |= 2 x = x | 2 7
=^ x ^= 2 x = x ^ 2 5
=>> x <<= 2 x = x << 2 28
=<< x <<= 2 x = x >> 2 1

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

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

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

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

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

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

اپراتور Identity

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

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


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

Python
x = ['apple', 'banana']
y = ['apple', 'banana']
z = x

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

Python
print (x is z)
print (x is y)
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
True
False
True

اپراتور Membership

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

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


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

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

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

خروجی:

Code
True

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

Python
print ('peach' not in x)

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

خروجی:

Code
False

اپراتور بیتی

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

نظرات