پایتون A تا Z : دوره کامل توسعه پایتون برای مبتدیان

عملگرهای پایتون (ریاضی ، تخصیص ، مقایسه ، منطقی ، باینری، هویت ، عضویت)

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


عملگر چیست؟
عملگرها در پایتون نمادهای خاصی هستند که شما برای عملیات بین دو مقدار یا متغیرها استفاده خواهید کرد. مقادیری که یک عملگر بر روی آن ها عمل می کند ، عملوند نامیده می شوند. و خروجی بسته به نوع عملگری که در عملیات استفاده کرده اید متفاوت است.

Operators_Definition

فرض کنید اگر می خواهید دو متغیر یا مقدار را جمع کنید ، می توانید از عملگر جمع برای این عملیات خاص استفاده کنید.

مقادیر موجود در عملوندها می تواند متغیر باشد ، یا هر نوع داده ای که در پایتون دارید. به عنوان مثال:

در این حالت ، عملگر “+” عملوندهای a و b را با هم جمع می کند. عملوند می تواند یک مقدار مستقیم یا متغیری باشد که به یک شئ اشاره می کند. دنباله ای از عملوندها و عملگرها ، مانند “a + b” ، یک عبارت(expression) نامیده می شود. پایتون برای ترکیب اشیاء داده در عبارات ، از بسیاری از عملگرها پشتیبانی می کند. این اپراتورها در بخش بعدی مورد بررسی قرار می گیرند.

Operators_Arithmetic_Addition


انواع عملرگرها
بسته به نوع عملیاتی که می خواهید انجام دهید ، 7 نوع عملگر در پایتون وجود دارد.

  • عملگرهای حسابی
  • عملگرهای تخصیص/انتساب
  • عملگرهای مقایسه
  • عملگرهای منطقی
  • عملگرهای بیتی
  • عملگرهای هویت
  • عملگرهای عضویت

Operators-Content


عملگرهای ریاضی

از عملگرهای ریاضی برای انجام عملیات ریاضی معمول در پایتون استفاده می شود ، مانند: جمع ، تفریق ، ضرب و تقسیم و غیره . در زیر عملگرهای ریاضی با نمادها و معنی آن ها آورده شده است. این ها عملگرهای ساده ریاضی هستند که برای انجام یک کار ریاضی در پایتون ، از آن ها استفاده خواهید کرد.

Operators-Arithmetic-1

به غیر از این چهار عملگر اصلی ریاضی ، شما همچنین عملگرهای توان ، باقیمانده و خارج قسمت را دارید:

Operators-Arithmetic-2

لطفا توجه داشته باشید که نتیجه تقسیم  (/) همیشه یک عدد اعشاری است ، حتی اگر باقی مانده صفر باشد.

در حالی که خارج قسمت (//) همیشه عدد صحیح می باشد.


عملگرهای تخصیص/انتساب

عملگرهای تخصیص برای اختصاص مقادیر به متغیرها یا هر شئ دیگر در پایتون استفاده می شوند.

به عنوان مثال ، x = 5 یک عملگر انتساب ساده است که مقدار 5 (در سمت راست) را به متغیر x (در سمت چپ) اختصاص می دهد.

چندین عملگر مرکب نیز در پایتون وجود دارد ، مانند: x + = 5 ، که به متغیر اضافه می شود و بعداً همان را اختصاص می دهد. بنابراین ، این برابر است با: x = x + 5

Operators-Assignment


عماگرهای مقایسه
اپراتورهای مقایسه که برای مقایسه 2 مقدار استفاده می شوند. از آنجا که این گزینه True یا False را برمی گرداند ، عملگرهای مقایسه معمولاً در زمینه های Boolean استفاده می شوند – مانند دستورات شرطی و حلقه ها ، برای هدایت جریان برنامه.

در زیر اپراتورهای مقایسه ای که در پایتون داریم آورده شده است: بزرگتر از ، کمتر از ، برابر با و برابر نیست.

Operators-Comparison


عملگرهای منطقی
عملگرهای منطقی ، عملگرهای “and” ، “or” و “not” برای مقایسه دو جمله شرطی استفاده می شوند.

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

Operators-Logical

هنگامی که از عملگر “and” استفاده می کنید: اگر هر دو عملگر درست باشند ، عبارت True را برمی گرداند.

در حالی که استفاده از عملگر “or” فقط اگر یکی از عملگرها درست باشد منجر به True خواهد شد.

عملگر “not” فقط در صورتی True می دهد که عبارت boolean به عنوان False باشد.


عملگرهای باینتری Bitwise
شبیه اپراتورهای منطقی هستند ، اما آن ها عملوندها را به عنوان توالی ارقام باینری در نظر می گیرند و آن ها را ذره ذره کار می کنند.

به عنوان مثال ، 5 به صورت باینری 101 است و 7 به 111 می باشد.

Operators-Bitwise-1

وقتی روی این عملوندها یک عمل OR (|) انجام می دهید ، به شما خروجی 7 (111 ، به صورت باینری) می دهد ، زیرا شما یک دفعه این کار را انجام می دهید! هنگامی که شما عملیات AND (&) را انجام می دهید ، اما با استفاده از عملیات منطقی مناسب ، بیت به بیت.

سرانجام ، یک عملگر bitwise دیگر نیز در پایتون وجود دارد ، به نام XOR (^). این عمل منحصر به فرد OR را در هر بیت از اعداد انجام می دهد ، و فقط در صورت درست بودن یک بیت True برمی گردد ، نه هر دو آن ها!

Operators-Bitwise-2

به غیر از این سه عملگر ، شما دو عملگر bitwise دیگر نیز دارید که عملگرهای شیفت راست و شیف چپ هستند.

وقتی این نوع عملوند استفاده می شود ، اساساً چه اتفاقی می افتد؟

ابتدا مقدار به نمایش دودویی آن تبدیل می شود. سپس ، باید با استفاده از دو علامت بزرگتر یا دو علامت کمتر ، مشخص کنید که کدام نوع شیفت را می خواهید انجام دهید. سرانجام ، پس از انجام این کار ، باید تعداد بیت هایی را که می خواهید تغییر دهید مشخص کنید! سپس ، خروجی باینری برای تعداد بیت هایی که مشخص کرده اید به سمت و سویی که انتخاب کرده اید ، چپ یا راست تغییر می کند.


اپراتورهای هویت (شناسه)
زبان پایتون برخی از اپراتورهای خاص را ارائه می دهد ، مانند اپراتور شناسه یا عضویت. آن ها  در بخش های بعدی با چند مثال برای هر یک شرح داده شده اند.

Operators-Identity

اپراتور های هویت برای فهمیدن این که 2 شئ دقیقاً با هم برابر هستند یا نه ، به کار می روند ، مثلا 2 شئ در صورتی با هم دقیقاً برابر هستند که مقدار آن ها برابر باشد و همچنین در یک قسمت در حافظه وجود داشته باشند.

در اینجا مثالی از 2 شئ وجود دارد که برابر هستند ، اما یکسان نیستند. x و y هر دو اشاره به اشیایی دارند که مقدار آنها 5 است: آنها برابر هستند. اما آنها به یک شئ مشابه اشاره نمی کنند ، همانطور که می توانید تأیید کنید: x و y هویت یکسانی ندارند و “x is y” نتیجه False را برمی گرداند.

قبلاً دیدید که وقتی یک تکلیف مانند “x = y” انجام می دهید ، پایتون فقط یک ارجاع دوم به همان شی ایجاد می کند و می توانید این رخداد را با تابع ()id  تأیید کنید. همچنین می توانید با استفاده از عملگر “is” آن را تأیید کنید.

در این حالت خاص ، از آنجا که a و b به یک شی یکسان اشاره می کنند ، دلیل بر این است که a و b نیز برابر هستند.

جای تعجب نیست که نقطه مقابل “is” کلمه ی کلیدی “is not” است:


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

عملگرهای عضویت ، “in” و “not in” برای آزمایش یافتن مقدار یا متغیر در یک دنباله استفاده می شوند: رشته ، لیست ، Tuple ، مجموعه یا فرهنگ لغت.

در زیر اپراتورهای عضویت در پایتون آورده شده است و یک بولین را باز می گردانیم.

Operators-Membership


اولویت عملگرها
اکنون شما یک مرور کاملی از عملگرهای مختلف در پایتون دارید ، اما بخاطر داشته باشید که:

وقتی دو عملگر یک عملوند را به اشتراک می گذارند ، عملگر با اولویت بالاتر اول است.

 

Operator Precedence example

به عنوان مثال ، این عبارت زیر را در نظر بگیرید. از آنجا که ضرب دارای تقدم بیشتری نسبت به جمع است ،
“a + b * c”

به این صورت رفتار می شود
a + (b * c)
و
a * b + c
به عنوان رفتار می شود
(a * b) + c

 

در اینجا ابهامی وجود دارد. آیا پایتون باید جمع 20 + 4 را ابتدا انجام دهد و سپس جمع را در 10 ضرب کند؟ یا اینکه ابتدا ضرب 4 * 10 و جمع 20 بعد فقط باید انجام بشه؟

واضح است ، از آنجا که نتیجه 60 است ، پایتون مورد دوم را انتخاب کرده است. اگر گزینه قبلی را انتخاب می کرد ، نتیجه 240 می شد.

این یک روش جبری استاندارد است که تقریباً در همه زبان های برنامه نویسی بi صورت جهانی یافت می شود.

در نتیجه ، به همه عملگرهایی که این زبان پشتیبانی می کند ، یک اولویت تعیین می شود. در یک عبارت ، همه عملگرهای دارای اولویت اول ، ابتدا انجام می شوند. هنگامی که این نتایج بدست آمد ، عملگرهایی با بالاترین اولویت بعدی ، انجام می شوند. بنابراین تا ارزیابی کامل کدادامه می یابد. هر عملگر دارای تقدم برابر به ترتیب چپ به راست انجام می شود.

در اینجا ترتیب تقدم عملگرهای پایتون است که تاکنون دیده اید ، از کمترین به بالاترین. اپراتورهای پایین جدول کمترین تقدم را دارند و عملگرهایی که در بالای جدول هستند بیشترین تقدم را دارند. هر عملگر در همان ردیف جدول دارای برتری برابر هستند.

Operator Precedence priority table

 

روشن است که چرا در مثال بالا ضرب ابتدا انجام می شود: ضرب از تقدم برتری دارد.

به همین ترتیب ، در مثال زیر ، 3 ابتدا به توان 4 رسیده است ، که برابر با 81 است ، و سپس ضرب ها به ترتیب از چپ به راست انجام می شوند

(2 * 81 * 5 = 810):

با استفاده از پرانتز می توان اولویت اپراتور را لغو کرد. عبارات داخل پرانتز همیشه قبل از عباراتی که پرانتز نیستند ،باید ابتدا انجام می شوند. بنابراین ، موارد زیر میتواند اتفاق بیافتد:
در مثال دوم، 4 + 20 ابتدا محاسبه می شود ، سپس نتیجه در 10 ضرب می شود.

در مثال چهارم ، ابتدا 5 * 4 محاسبه می شود ، سپس 3 به  توان آن رسیده و سپس نتیجه در 2 ضرب می شود.

استفاده آزادانه از پرانتزها اشکالی ندارد ، حتی اگر برای تغییر ترتیب ارزیابی ضروری نباشد.

در حقیقت ، این روش ، خوب در نظر گرفته می شود ، زیرا می تواند کد را بیشتر خوانا کند و خواننده را از یادآوری تقدم عملگر از ذهن خودش راحت می کند.

موارد زیر را در نظر بگیرید:

در اینجا پرانتزها کاملاً غیرضروری هستند ، زیرا عملگرهای مقایسه از اولویت بالاتری نسبت به and برخوردار هستند و به هر حال ابتدا انجام می شدند. اما برخی ها ممکن است عبارت با پرانتز را سریع تر از عبارت بدون پرانتز متوجه شوند:

از طرف دیگر ، احتمالاً کسانی هستند که دومی را ترجیح می دهند. این یک امر ترجیحی شخصی است. نکته این است که ، اگر احساس می کنید کد را بیشتر خوانا می کند ، همیشه می توانید از پرانتز استفاده کنید ، حتی اگر برای تغییر ترتیب ارزیابی ضروری نباشد.


جمع بندی
در این آموزش ، چندین عملگر را که پایتون از آن ها پشتیبانی می کند کشف کردید ، بنابراین می توانید اشیاء را در عبارات ترکیب کنید. اکنون باید درک کاملی از عملگرهای تخصیص ، منطقی و مقایسه داشته باشید. به این ترتیب ، شما کاملاً آماده هستید تا شرایط را با جزئیات بیشتری کاوش کنید ، بنابراین اکنون می توانید جریان اجرای برنامه پایتون خود را کنترل کنید  و همچنین دستورات If… Else ، که در آموزش بعدی پوشش داده خواهد شد.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا