Приоритет выполнения операций
Ниже, операции перечислены в порядке уменьшения приоритета. Операции с более высоким приоритетом выполняются до выполнения операций с более низким приоритетом. Операции, указанные в одной строке, имеют одинаковый приоритет и выполняются слева направо (кроме степени).
Операция | Описание |
---|---|
** | Возведение в степень |
+x , -x , ~x | Унарные "плюс" и "минус", побитовое НЕ |
* , @ , / , // , % | Умножение, матричное умножение, деление, целочисленное деление, взятие остатка |
+ , - | Сложение, вычитание |
<< , >> | Побитовые сдвиги влево и вправо |
& | Побитовое И |
^ | Побитовое исключающее ИЛИ (XOR) |
| | Побитовое ИЛИ |
in , not in , is , is not , < , <= , > , >= , != , == | Вхождение, идентичность, операторы сравнения |
not x | Логическое НЕ |
and | Логическое И |
or | Логическое ИЛИ |
Примеры
-2**-1
-->-(2**(-1))
сначала степень, затем унарный оператор2 + -2 = 0
-->2 + (-2) = 0
сначала унарный оператор, затем сложение1 + 10 * 20 / 4 // 5 - 9
-->(1 + (((10 * 20) / 4) // 5) - 9
сначала умножение и деление, затем сложение и вычитаниеx >> 2 << 2 ^ 3 & 7 | 2
-->(((x >> 2) << 2) ^ (3 & 7)) | 2
сначала сдвиги, затем И, затем ИЛИ-НЕ, затем ИЛИ7 + 5 == 48 / 4 in (10, 11, 12)
-->((7 + 5) == (48 / 4)) in (10, 11, 12)
сначала арифметика, затем сравнение и вхождениеA and B or C or not D and E
-->((A and B) or C) or ((not D) and E)
сначала НЕ, затем И, затем ИЛИ