Python را ساده بیاموزیم۵

عملگر‌های اولیه در Python

عملگر‌ها یا Operatorها از جمله اجزای بنیادی زبان‌های برنامه‌نویسی هستند. به اجزایی که یک عملگر بر آن‌ها عمل می‌کند عملوند یا Operand می‌گویند. عملگر‌های پایتون انواع گوناگونی دارند که عبارتند از:

عملگر‌های محاسباتی

  • عملگر + مجموع دو عملوند خود را بر می‌گرداند.
  • عملگر - حاصل تفریق علموند راست از عملوند چپ را بر می‌گرداند.
  • عملگر * حاصل ضرب دو عملوند خود را بر می‌گرداند.
  • عملگر / حاصل تقسیم عملوند چپ بر عملوند راست را بر می‌گرداند.
  • عملگر // قسمت صحیح حاصل تقسیم را بر می‌گرداند.
  • عملگر % باقی‌مانده تقسیم عملوند چپ بر عملوند راست را بر می‌گرداند.
  • عملگر ** عملوند سمت چپ خود را به توان عملوند سمت راست می‌رساند.

عملگرد‌های مقایسه‌ای

این عملگر‌ها دو عملوند خود را مقایسه کرده و نتیجه مقایسه را به صورت یک داده بولین باز می‌گردانند؛

  • عملگر == در صورت برابری عملوند‌ها True و در غیر این صورت False باز می‌گرداند.
  • علمگر =! در صورت نابرابری عملوند‌ها True و در صورت برابری آن‌ها False باز می‌گرداند.
  • عملگر > اگر عملوند چپ از راست کوچک‌تر باشد True و در غیر این صورت False باز می‌گرداند.
  • عملگر < اگر عملوند چپ از راست بزرگ‌تر باشد True و در غیر این صورت False باز می‌گرداند.
  • عملگر => اگر عملوند چپ از راست کوچک‌تر یا برابر آن باشد True و در غیر این صورت False باز می‌گرداند.
  • عملگر =< اگر عملوند چپ از راست بزرگ‌تر یا برابر آن باشد True و در غیر این صورت False باز می‌گرداند.

عملگر‌های تخصیص مقدار

در مقالات پیشین با یکی از این عملگر‌ها یعنی = آشنا شدیم. این عملگر می‌تواند با سایر عملگر‌ها ترکیب شود تا عبارات ساده‌تری حاصل شود. به طور مثال عبارت a = a + b را می‌توان با ترکیب عملگر + و = به صورت a += b نوشت. این دو عبارت نتیجه یکسانی دارند.

عملگر‌های بیتی

دو متغیر a و b با مقادیر به ترتیب ۶۰ و ۱۳ در نظر بگیرید. معادل باینری این اعداد به ترتیب ۰۰۱۱۱۱۰۰ و ۰۰۰۰۱۱۰۱ است. عملگر‌های بیتی مستقیما بر این بیت‌های ذخیره‌شده در حافظه اثر می‌گذارند. این عملگر‌ها عبارتند از:

  • عملگر & که عمل منطقی AND را به روی بیت‌ها انجام می‌دهد؛ اگر هر دو بیت متناظر ۱ باشند نتیجه ۱ و در غیر این صورت ۰ است.
    a & b = 00001100
  • عملگر | عمل منطقی OR را به روی بیت‌ها انجام می‌دهد؛ اگر حداقل یکی از بیت‌های متناظر ۱ باشد نتیجه ۱ و در غیر این صورت ۰ است.
    a | b = 00111101
  • عملگر ^ که عمل XOR را به روی بیت‌ها انجام می‌دهد؛ اگر تنها یکی از دو بیت متناظر یک باشد نتیجه ۱ و در غیر این صورت ۰ است.
    a ^ b = 00110001
  • عملگر ~ که تنها یک عملوند دارد (که پس از عملگر می‌آید). این عملگر مقدار تمامی بیت‌ها را معکوس می‌کند.
    a = 11000011~
  • عملگر << بیت‌ها را به سمت چپ جابجا (Shift) می‌کند. این عملگر بیت‌های ذخیره‌شده در متغیر سمت چپ آن را به اندازه عدد سمت راست آن به سمت چپ جابجا می‌کند.
    a >> 2 = 00001111
  • عملگر >> بیت‌ها را به سمت راست جابجا می‌کند. این عملگر بیت‌های ذخیره شده در متغیر سمت چپ آن را به اندازه عدد سمت راست آن به سمت راست جابجا می‌کند.
    a << 2 = 11110000

عملگر‌های منطقی

متغیر‌های Boolean می‌توانند می‌توانند حاوی مقادیر True یا False باشند. سایر متغیر‌ها نیز اگر حاوی مقداری غیرصفر باشند معادل True و اگر مقداری معادل صفر داشته باشند False در نظر گرفته می‌شود. عملگر‌هایی وجود دارند که به روی مقادیر منطقی متغیر‌ها عمل می‌کنند که عبارتند از:

  • عملگر and که به روی دو متغیر عمل کرده و در صورتی که هر دو True باشند مقدار True و در غیر این صورت False باز می‌گرداند.
  • عملگر or که به روی دو متغیر عمل کرده و در صورتی که حداقل یکی از دو متغیر True باشند مقدار True و در غیر این صورت False باز می‌گرداند.
  • عملگر not که تنها به روی یک متغیر عمل کرده و مقدار آن را معکوس می‌کند. نام متغیری که بر آن اثر می‌کند پس از نام عملگر می‌آید.

عملگرهای شمولیت

فرض کنید عملوند نخست این عملگر‌ها یک متغیر عادی و عملوند دوم یک لیست، چندتایی (Tuple)، رشته و یا نگاشت (Dictionary) باشد.

  • عملگر in در صورتی که عملوند دوم شامل عملوند اول باشد مقدار True و در غیر این صورت False باز می‌گرداند.
  • عملگر not in نقیض عملگر in است و در صورتی که عملوند دوم شامل عملوند اول نباشد True برمی‌گرداند.

برای درک بهتر به مثال زیر دقت کنید:

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

این عملگرها آدرس محل قرارگیری عملوند‌هایشان در حافظه را بررسی می‌کنند.

برای دسترسی به اطلاعات هر متغیر درون Memory لازم است محل ذخیره‌سازی آن را بدانیم. محل ذخیره‌سازی را که Address می‌نامند یک عدد (۳۲ بیتی در سیستم‌های x86 و ۶۴ بیتی در سیستم‌های x86-64) است که شماره نخستین بایت آن متغیر در Memory را نگه‌داری می‌کند.

تابع id() در زبان پایتون عملکردی شبیه به عملگر & در زبان C و C++ دارد. این تابع مقداری عددی شبیه به یک Pointer در زبان C و C++ را باز می‌گرداند که محل ذخیره متغیر داده شده به تابع در حافظه را باز می‌گرداند. عملگر‌های هویتی در واقع مقدار این تابع برای دو عملوند خود را مقایسه می‌کنند.

  • اگر دو عملوند is در فضای مشترکی از حافظه ذخیره شده باشند مقدار Ture و در غیر این صورت مقدار False بازگردانی می‌شود.
  • عملگر is not نقیض عملگر is است و مقدار خروجی آن بر عکس است.

اولویت عملگر‌ها

هنگامی که مترجم پایتون به یک عبارت مرکب از چندین عملگر برسد به ترتیب لیست زیر که شباهت زیادی به اولویت عملگر‌ها در ریاضیات دارد عملگر‌ها را اعمال کرده و نتیجه را محاسبه می‌کند. اولویت‌ها عبارتند از:

  1. عبارت درون پرانتز
  2. عملگر توان (**)
  3. عملگر‌های دارای یک عملوند (~ + -)
  4. ضرب، تقسیم و باقی‌مانده (* / % //)
  5. جمع و تفریق (+ -)
  6. عملگر‌های جابجایی (شیفت) بیتی (>> <<)
  7. عملگر‌های شبه‌منطقی بیتی (& ^ |)
  8. عملگر‌های مقایسه‌ای (<= < > >=)
  9. عملگر‌های برابری (<> == !=)
  10. عملگر‌های اختصاص مقدار (= %= /= //= -= += *= **=)
  11. عملگر‌های هویتی (is is not)
  12. عملگر‌های شمولیت (in not in)
  13. عملگر‌های منطقی (not or and)

اشتراك گذاری نوشته

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *