Шаг 22.
Основы языка Python.
Операторы. Приоритет выполнения операторов

    На этом шаге мы рассмотрим порядок выполнения операторов.

    В какой последовательности будет вычисляться приведенное далее выражение?

  x = 5 + 10 * 3 / 2

    Это зависит от приоритета выполнения операторов. В данном случае последовательность вычисления выражения будет такой:

  1. Число 10 будет умножено на 3, т. к. приоритет оператора умножения выше приоритета оператора сложения.
  2. Полученное значение будет поделено на 2, т. к. приоритет оператора деления равен приоритету оператора умножения (а операторы с равными приоритетами выполняются слева направо), но выше, чем у оператора сложения.
  3. К полученному значению будет прибавлено число 5, т. к. оператор присваивания = имеет наименьший приоритет.
  4. Значение будет присвоено переменной х.
>>> x = 5 + 10 * 3 / 2
>>> x
20.0

    С помощью скобок можно изменить последовательность вычисления выражения:

 х = (5  + 10) * 3 / 2

    Теперь порядок вычислений станет иным:

  1. К числу 5 будет прибавлено 10.
  2. Полученное значение будет умножено на 3.
  3. Полученное значение будет поделено на 2.
  4. Значение будет присвоено переменной х.
>>> x = (5 + 10) * 3 / 2
>>> x
22.5

    Перечислим операторы в порядке убывания приоритета:

  1. -х, +х, ~х, ** - унарный минус, унарный плюс, двоичная инверсия, возведение в степень. Если унарные операторы расположены слева от оператора **, то возведение в степень имеет больший приоритет, а если справа - то меньший. Например, выражение:
      -10  ** -2
    
    эквивалентно следующей расстановке скобок:
      -(10 ** (-2))	.
    
  2. *, %, /, // - умножение (повторение), остаток от деления, деление, деление с округлением вниз.
  3. +, - - сложение (конкатенация), вычитание.
  4. <<, >> - двоичные сдвиги.
  5. & - двоичное И.
  6. ^ - двоичное исключающее ИЛИ.
  7. | - двоичное ИЛИ.
  8. =, +=, -=, *=, /=, //=, %=, **= - присваивание.

    Со следующего шага мы начнем рассматривать условные и циклические конструкции.




Предыдущий шаг Содержание Следующий шаг