ترتیب عملگرها در پایتون
اگر از چند عملگر ریاضی در یک عبارت پایتونی استفاده کنید، اولویت اجرای عملگرها متفاوت خواهد بود و اجرای آنها براساس قوانین تقدم است. ترتیب اجرای عملگرها در پایتون مشابه ریاضیات بوده و از قوانین تقدم مشابه ریاضیات استفاده میکند. در این آموزش، خواهید آموخت که چگونه اولویت عملگرها بر ترتیب اجرای آنها در پایتون تأثیر می گذارد.
دوره پیشنهادی: دوره آموزش پایتون (python)
# اولویت اجرای عملگرهای پایتون
ترکیبی از مقادیر، متغیرها، عملگرها و فراخوانی توابع به عنوان عبارت(expression) شناخته می شود. مفسر پایتون می تواند یک عبارت معتبر را اجرا کند:
>>> 7 - 5
2
در کد بالا بخش 5 - 7
یک عبارت است. این امکان وجود دارد که از چند عملگر در یک عبارت استفاده کنید. برای اجرای این نوع عبارات یک قانون تقدم در پایتون وجود دارد که ترتیب اجرای این عملیات را مشخص می کند.
به عنوان مثال، ضرب دارای اولویت بالاتری نسبت به تفریق است:
>>> 10 - 4 * 2
2
اما میتوانیم این ترتیب را با استفاده از پرانتز تغییر دهیم زیرا پرانتز اولویت بیشتری نسبت به ضرب دارد:
>>> (10 - 4) * 2
12
اولویت عملگرهای پایتون در جدول زیر آمده است. به ترتیب نزولی است (آیتمهای بالاتر اولویت بیشتری نسبت به آیتمهای پایینتر دارند):
Operators | Meaning |
---|---|
() |
Parentheses |
** |
Exponent |
+x , -x , ~x |
Unary plus, Unary minus, Bitwise NOT |
* , / , // , % |
Multiplication, Division, Floor division, Modulus |
+ , - |
Addition, Subtraction |
<< , >> |
Bitwise shift operators |
& |
Bitwise AND |
^ |
Bitwise XOR |
| |
Bitwise OR |
== , != , > , >= , < , <= , is , is not , in , not in |
Comparisons, Identity, Membership operators |
not |
Logical NOT |
and |
Logical AND |
or |
Logical OR |
دقت کنید که اگر دو عملگر اولویت یکسانی داشته باشند، اجرای عملگرها از چپ به راست اتفاق خواهد افتاد:
>>> 5 * 2 // 3
3
>>> 5 * (2 // 3)
0
مثال اول:
>>> 16 - 2 * 5 // 3 + 1
14
در کد بالا ابتدا عبارت 5 * 2
، سپس 3 // 10
، سپس 3 - 16
و در آخر 1-13
اجرا خواهد شد.
مثال دوم:
>>> 2 ** 2 ** 3 * 3
768
عملگر توان به ضرب اولویت دارد اما تقدم آن از راست به چپ است. پس ابتدا 3**2
میشود 8 ، سپس 8**2
میشود 256 ، و در آخر 3*256
میشود 768.