все Python 3Арифметика и операторыпонятие
Приоритет операций
приоритет
Порядок вычисления выражений: ** > унарный минус > * / // % > + -. Скобки повышают приоритет. Помнить: PEMDAS / BODMAS.
Синтаксис
( ) → ** → -x → * / // % → + -
Таблица не заканчивается на арифметике: сравнения стоят ниже неё, а not, and и or — ещё ниже, поэтому a + b > c and d читается как ((a + b) > c) and d. Возведение в степень связывает крепче унарного минуса слева, но не справа — запись 2 ** -1 законна и даёт 0.5. Учить всю таблицу наизусть незачем: в смешанном выражении скобки обходятся дешевле отладки.
Примеры
print(2 + 3 * 4) # → 14 (сначала умножение)
print((2 + 3) * 4) # → 20 (скобки первыми)
print(2 ** 3 ** 2) # → 512 (правоассоциативность: 3**2=9, 2**9)
print(-2 ** 2) # → -4 (сначала степень, потом минус)
print(10 - 3 + 2) # → 9 (слева направо)
print(10 % 3 + 1) # → 2 (% раньше +)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности