Logo
  • ГЛАВНАЯ
  • ОБО МНЕ
  • СЕРТИФИКАТЫ
nocip.ssh@mail.ru
2.3.1.7 Операторы и их приоритеты

Operators and their priorities

До сих пор мы относились к каждому оператору так, как будто он не связан с другими. Очевидно, что такая идеальная и простая ситуация - большая редкость в реальном программировании.

Кроме того, вы очень часто встретите более одного оператора в одном выражении, и тогда это предположение уже не так очевидно.

Рассмотрим следующее выражение:

2 + 3 * 5

Вы, наверное, помните из школы, что умножение предшествует сложению.

Вы, конечно же, помните, что вам нужно сначала умножить 3 на 5 и, сохранив 15 в своей памяти, затем прибавить его к 2, получив таким образом результат 17.

Явление, которое заставляет одних операторов действовать раньше других, известно как иерархия приоритетов.

Python точно определяет приоритеты всех операторов и предполагает, что операторы с более высоким приоритетом выполняют свои операции перед операторами с более низким приоритетом.

Итак, если вы знаете, что * имеет более высокий приоритет, чем +, вычисление окончательного результата должно быть очевидным.

Операторы и их привязки

Привязка оператора определяет порядок вычислений, выполняемых некоторыми операторами с равным приоритетом, помещенными рядом в одном выражении.

Большинство операторов Python имеют левостороннюю привязку, что означает, что вычисление выражения выполняется слева направо.

Этот простой пример покажет вам, как это работает. Взглянем:

print(9 % 6 % 2)

Есть два возможных способа вычисления этого выражения:

  • слева направо: сначала 9 % 6 дает 3, а затем 3 % 2 дает 1;
  • справа налево: сначала 6 % 2 дает 0, а затем 9 % 0 вызывает фатальную ошибку.

Запустите пример и посмотрите, что у вас получится.

Результат должен быть 1. Этот оператор имеет левостороннюю привязку. Но есть одно интересное исключение.





🔁

RetraR — Компьютерные игры для Nintendo Game Boy
Приветствуем всех любителей ретро-игровой индустрии на канале RetraR
RetraR - Computer games for Nintendo Game Boy 🌌🛸👽👾☄️🤖
RetraR - 任天堂ゲームボーイ用コンピュータゲーム 🎮🕹️👾

RetraR
RetraR
Канал ретро компьютерных игр

Оформить заказ

Нажимая на кнопку, вы даете согласие на обработку персональных данных

Спасибо за заказ

Ваш заказ принят в обработку. 

Мы свяжемся с вами в ближайшее время.