Шаг 22.
Основы языка Python.
Операторы. Приоритет выполнения операторов
На этом шаге мы рассмотрим порядок выполнения операторов.
В какой последовательности будет вычисляться приведенное далее выражение?
Это зависит от приоритета выполнения операторов. В данном случае последовательность вычисления выражения будет такой:
- Число 10 будет умножено на 3, т. к. приоритет оператора умножения выше приоритета оператора сложения.
- Полученное значение будет поделено на 2, т. к. приоритет оператора деления равен приоритету оператора умножения (а операторы с равными приоритетами выполняются
слева направо), но выше, чем у оператора сложения.
- К полученному значению будет прибавлено число 5, т. к. оператор присваивания = имеет наименьший приоритет.
- Значение будет присвоено переменной х.
>>> x = 5 + 10 * 3 / 2
>>> x
20.0
С помощью скобок можно изменить последовательность вычисления выражения:
Теперь порядок вычислений станет иным:
- К числу 5 будет прибавлено 10.
- Полученное значение будет умножено на 3.
- Полученное значение будет поделено на 2.
- Значение будет присвоено переменной х.
>>> x = (5 + 10) * 3 / 2
>>> x
22.5
Перечислим операторы в порядке убывания приоритета:
- -х, +х, ~х, ** - унарный минус, унарный плюс, двоичная инверсия, возведение в степень. Если унарные операторы
расположены слева от оператора **, то возведение в степень имеет больший приоритет, а если справа - то меньший. Например, выражение:
эквивалентно следующей расстановке скобок:
- *, %, /, // - умножение (повторение), остаток от деления, деление, деление с округлением вниз.
- +, - - сложение (конкатенация), вычитание.
- <<, >> - двоичные сдвиги.
- & - двоичное И.
- ^ - двоичное исключающее ИЛИ.
- | - двоичное ИЛИ.
- =, +=, -=, *=, /=, //=, %=, **= - присваивание.
Со следующего шага мы начнем рассматривать условные и циклические конструкции.
Предыдущий шаг
Содержание
Следующий шаг