اولویت عملگرها (Operator Precedence)
اولویت عملگرها یعنی کدام عملگر زودتر اجرا می شود. بنابراین ترتیب محاسبه مشخص می گردد. مثل ریاضی مدرسه است؛ پرانتز اول است و بعد بقیه.
پرانتز همیشه اول حساب می شود
پرانتز (Parentheses) بالاترین اولویت را دارد. پس داخل پرانتز زودتر محاسبه می شود.
print((6 + 3) - (6 + 3))
ضرب قبل از جمع محاسبه می شود
ضرب و تقسیم از جمع و تفریق مهم ترند. بنابراین ابتدا ضرب انجام می شود.
print(100 + 5 * 3)
ترتیب کلی اولویت ها
از بالا به پایین: پرانتز، توان **، علامت های یگانی (+x, -x, ~x)، سپس *, /, //, %، بعد +, -، سپس شیفت ها (<<، >>)، سپس &، بعد ^، بعد |، بعد مقایسه ها و هویت/عضویت، و در پایان not، and، or.
نکته: اگر دو عملگر هم اولویت باشند، از چپ به راست ارزیابی می شود.
نمونه هم اولویتی (چپ به راست)
print(5 + 4 - 7 + 3)
گام های تمرینی سریع
- یک عبارت با پرانتز بساز.
- همان عبارت را بدون پرانتز اجرا کن.
- تفاوت خروجی را بررسی کن.
هشدار: پرانتزها را زیاد تو در تو نکن؛ کد گیج کننده می شود.
برای مرور عملگرهای مقایسه ای و عملگرهای منطقی سر بزن. اگر با بیت ها کار می کنی، بخش عملگرهای بیتی را بخوان. برای جزئیات، همین صفحه اولویت عملگرها مرجع تو است.
جمع بندی سریع
- پرانتز همیشه اول است.
- ضرب/تقسیم قبل از جمع/تفریق است.
- شیفت ها بعد از جمع/تفریق اند.
- مقایسه ها پس از بیتی ها می آیند.
- not، and، or در انتهای ترتیب اند.