اولویت عملگرها در زبان برنامه نویسی پایتون


در آموزش گذشته با عملگرها در زبان برنامه نویسی Python آشنا شدیم. حال فرض کنیم قصد داشته باشیم تا مقدار عبارت 3 + 4 * 2 را حساب کنیم. قبل از آن که این عبارت را به مفسر پایتون بسپاریم بهتر است ابتدا خودمان مقدار آن را محاسبه کنیم. دو راه برای محاسبه ی این عبارت وجود دارد:

- ابتدا حاصل جمع 3 + 4 را به دست آوریم که برابر با 7 است آن گاه این مقدار را در 2 ضرب کنیم که حاصل برابر با 14 است.
- ابتدا حاصل 4 * 2 را به دست آوریم که برابر با 8 است، آن گاه این مقدار را با 3 جمع کنیم که حاصل 11 می شود.

همان طور که می بینید بسته به این که کدام عملگر زودتر بر عملوندهای اطراف خود تأثیر بگذارد، جواب های متفاوتی به دست می آید. برای جلوگیری از بروز چنین جواب های چندگانه ای در زمان انجام محاسبات، یک استاندارد برای مفسر پایتون تعریف شده است که بر اساس آن به هر یک از عملگرها اولویتی داده می شود که هرچه این اولویت بالاتر باشد بررسی آن زودتر صورت می گیرد. ترتیب اولویت عملگرهایی که با آن ها آشنا شدیم در زیر آمده است. توجه کنید که عملگرهایی که در یک سطر قرار دارند اولویت یکسان دارند:

**
/ 	//	%	*
+       -     
==		!=
<		> 	<=	>=
=		-=	+=	*=	/=	//=	%=	**=

نکاتی در مورد اولویت عملگرها در زبان برنامه نویسی پایتون:
۱- در صورتی که در عبارت محاسباتی پرانتزهای () ظاهر شوند، اولویت با محاسبه ی عبارت داخل پرانتز است. به طور مثال در عبارت 2 * ( 3 + 1 ) – 5 با وجود آن که اولویت عملگر * از عملگرهای + و – بالاتر است ابتدا عبارت درون جفت پرانتزها یعنی حاصل 3 + 1 محاسبه می شود، آن گاه مقدار به دست آمده در 2 ضرب می شود، و سپس عدد 5 از حاصل این دو عملیات کم می شود که جواب نهایی برابر است با:

>>> 2 * ( 3 + 1 ) - 5
3

۲- در صورتی که در یک عبارت محاسباتی چندین پرانتز تودرتو وجود داشته باشد محاسبات از داخلی ترین پرانتز آغاز می شود و به سمت بیرون می آید:

>>> ( 4 + ( 2 * ( 3 - 1 )))
8

همان طور که در این مثال می بینید، ابتدا مقدار عبارت داخلی ترین پرانتز یعنی ( 3 - 1 ) محاسبه می شود، آن گاه حاصل آن که مقدار 2 است در عدد 2 ضرب می شود تا حاصل پرانتز دوم به دست آید، در پایان این مقدار که برابر با 4 است با عدد 4 جمع می شود تا حاصل عبارتی که در بیرونی ترین پرانتز قرار دارد محاسبه شود.

۳- در صورتی که در یک عبارت محاسباتی چند عملگر با اولویت یکسان وجود داشته باشند به ترتیب آن ها را از سمت چپ روی عملوندها تأثیر می دهیم.

>>> 3 * 4 % 9 // 2
1

در مثال بالا از آن جا که اولویت تمام عملگرها یکسان است از سمت چپ به ترتیب عملگر *، %، و در نهایت // بر عملوندها تأثیر می گذارند.

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
alien
alien
=
network
network
دمتون گرم عالی بوووود
سجاد
سجاد
عالی
Adib
Adib
سلام
ممنون بابت آموزش خیلی خوبتون.
برای 10/5+5 گزینه 10.0 صحیح میباشد.
سیداحمد  حسینی
سیداحمد حسینی
ممنون از زحماتتون منتظز ادامه اموزش هستیم
کاربر میهمان
رضامن یک کاربر مهمان هستم
آموزشاتون خیلی عالی و کامل هستن ممنون
مهدی رحمانی
مهدی رحمانی
خوب بود تا اينجا برام دوره شد تو کد زدن ميخواستم بدونم ادامه اموزش برقراره بزودي؟