Перейти к содержанию

13 Приоритет операторов (Практика)

Плюс и минус

Плюс и минус имеют одинаковый приоритет, поэтому не важной в какой последовательности считать данное выражение

100 - 20 + 50 # 130

Например, если сначала из 100 вычесть 20

(100 - 20) + 50 # 130

Или если к 100 сначала прибавить 50. Результат будет одинаковый

(100 + 50) - 20 # 130

Плюс и умножить

То же самое касается операторов умножения и деления. Они имеют одинаковый приоритет. Но их приоритет выше чем у сложения и вычитания.

Например, следующее выражение

10 * 4 + 5 * 5 # 65

можно записать так. И результат будет одинаковым. Сначала выполняются операции умножения, а затем сложения.

(10 * 4) + (5 * 5) # 65

Умножить и степень

При этом приоритет возведения в степень выше, чем у умножения и деления

10 * 2 ** 3 # 80

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

10 * (2 ** 3) # 80

Пример где скобки не обязательны, но их лучше использовать

В прошлом конспекте был пример расчета будущей выручки на вкладе

principal = 100
apr = 0.1
years = 10

future_value = principal * ((1 + apr/12) ** (years * 12))
print(future_value) # 270.70414908622433

В этом примере я использовал дополнительные скобки, чтобы было проще увидеть какая часть выражения будет рассчитана первая. Хотя эти скобки не обязательны, так как приоритет оператора возведения в степень выше.

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

future_value = principal * (1 + apr/12) ** (years * 12)
print(future_value) # 270.70414908622433

Степень и унарный оператор справа

Если справа от оператора возведения в степень находится унарный оператор, то он вычисляется первым. Например

2 ** -8 # 0.00390625

Запись выше равносильна такой записи

2 ** (-8) # 0.00390625

Степень и унарный оператор слева

Но, если унарный оператор находится слева от оператора возведения в степень, то приоритет в возведения в степень

-4 ** 0.5 # -2.0

В результате получилось -2.0, хотя по записи кажется что -4 возводится в степень 0.5. Но такая запись вычисляется так:

-(4 ** 0.5) # -2.0

Если нужно взять именно квадратный корень от -4, то необходимо взять -4 в скобки

(-4) ** 0.5 # (1.2246467991473532e-16+2j)

В результате получается комплексное число.

Пример умножения числа на само себя с добавлением единицы

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

n = 10
n * n + 1 # 101

Чтобы вычисления были правильные необходимо использовать скобки.

n * (n + 1) # 110