در آموزش گذشته با عملگرها در زبان برنامهنویسی پایتون آشنا شدیم. حال فرض کنیم قصد داشته باشیم تا مقدار عبارت 3 + 4 * 2
را حساب کنیم. قبل از آنکه این عبارت را به مفسر پایتون بسپاریم بهتر است ابتدا خودمان مقدار آن را محاسبه کنیم به طوری که دو راه برای محاسبهٔ این معادله وجود دارد:
- ابتدا حاصل جمع 3 و 4 را به دست آوریم که برابر با 7 است آنگاه این مقدار را در 2 ضرب کنیم که نتیجه برابر با 14 میشود.
- ابتدا حاصل 4 در 2 را به دست آوریم که برابر با 8 است آنگاه این مقدار را با 3 جمع کنیم که حاصل 11 میشود.
همانطور که میبینید، بسته به اینکه کدام عملگر زودتر بر عملوندهای اطراف خود تأثیر بگذارد، جوابهای متفاوتی به دست میآید! برای جلوگیری از بروز چنین جوابهای چندگانهای در زمان انجام محاسبات، یک استاندارد برای مفسر پایتون تعریف شده است که بر اساس آن به هر یک از عملگرها یک اولویت داده میشود که هرچه این اولویت بالاتر باشد، بررسی آن زودتر صورت میگیرد. ترتیب اولویت عملگرهایی که پیش از این با آنها آشنا شدیم در ادامه آمده است اما در عین حال توجه داشته باشید عملگرهایی که در یک سطر قرار دارند اولویت یکسانی دارند:
**
/ // % *
+ -
== !=
< > <= >=
= -= += *= /= //= %= **=
نکاتی در مورد اولویت عملگرها در زبان برنامهنویسی پایتون
در صورتی که در عبارت محاسباتی علائم ()
درج شوند، اولویت با محاسبهٔ عبارت داخل پرانتز است. به طور مثال در عبارت 2 * ( 3 + 1 ) – 5
با وجود آنکه اولویت عملگر *
از عملگرهای +
و –
بالاتر است، اما ابتدا عبارت درون جفت پرانتزها محاسبه شده آنگاه مقدار به دست آمده در 2 ضرب میشود سپس عدد 5 از حاصل این دو عملیات کم میشود که جواب نهایی برابر است با:
>>> 2 * ( 3 + 1 ) - 5
3
در صورتی که در یک عبارت محاسباتی چندین پرانتز تودرتو وجود داشته باشد، محاسبات از داخلیترین پرانتز آغاز میشود و به سمت بیرون میآید:
>>> ( 4 + ( 2 * ( 3 - 1 )))
8
همانطور که در این مثال میبینید، ابتدا مقدار عبارت داخلیترین پرانتز یعنی (3 - 1)
محاسبه میشود آنگاه حاصلش که مقدار 2 است در عدد 2 ضرب میشود تا حاصل پرانتز دوم به دست آید و در پایان این مقدار که برابر با 4 است با عدد 4 جمع میشود تا حاصل عبارتی که در بیرونیترین پرانتز قرار دارد محاسبه شود. همچنین در صورتی که در یک عبارت محاسباتی چند عملگر با اولویت یکسان وجود داشته باشند، به ترتیب آنها را از سمت چپ روی عملوندها تأثیر میدهیم:
>>> 3 * 4 % 9 // 2
1
در مثال بالا از آنجا که اولویت تمام عملگرها یکسان است، از سمت چپ به ترتیب عملگر *
، %
و در نهایت //
بر عملوندها تأثیر میگذارد.