Приоритет операций
Свойство оператора, влияющее на очередность его выполнения в выражении с несколькими различными операторами при отсутствии явного (с помощью скобок) указания на порядок их вычисления.
Например, результат выражения 2 + 2 * 2 — 6, поскольку приоритет операции умножения выше, чем приоритет операции сложения. Изменить порядок вычислений в выражении можно с помощью скобок:
>>> (2 + 2) * 2
8
Ассоциативность
последовательность выполнения операций (или направление вычисления), реализуемая когда операции имеют одинаковый приоритет и отсутствует явное (с помощью скобок) указание на очерёдность их выполнения.
Различают правую (справа налево) и левую (слева направо) ассоциативность. Пример оператора с левой ассоциативностью — оператор деления /. Так, выражение 8 // 4 // 2 эквивалентно (8 // 4) // 2 и его результат равен 1.
Пример оператора с правой ассоциативностью — оператор возведения в степень:
>>> 2 ** 2 ** 3
256
>>> 2 ** (2 ** 3)
256
>>> (2 ** 2) ** 3
64
В таблице приведены некоторые арифметические операторы языка Python в порядке уменьшения приоритета (операторы с наибольшим приоритетом расположены выше).
Операторы
|
Описание
|
Ассоциативность
|
(выражения...)
|
Круглые скобки
|
|
**
|
Возведение в степень
|
Справа налево
|
+x, -x
|
Унарные плюс и минус
|
|
*, /, //, %
|
Умножение, деление, целочисленное деление,
взятие остатка от деления
|
Слева направо
|
+, -
|
Сложение и вычитание
|
Do'stlaringiz bilan baham: |