13 Приоритет операторов (Практика)
Плюс и минус
Плюс и минус имеют одинаковый приоритет, поэтому не важной в какой последовательности считать данное выражение
Например, если сначала из 100 вычесть 20
Или если к 100 сначала прибавить 50. Результат будет одинаковый
Плюс и умножить
То же самое касается операторов умножения и деления. Они имеют одинаковый приоритет. Но их приоритет выше чем у сложения и вычитания.
Например, следующее выражение
можно записать так. И результат будет одинаковым. Сначала выполняются операции умножения, а затем сложения.
Умножить и степень
При этом приоритет возведения в степень выше, чем у умножения и деления
Сначала будет вычислен результат возведения в степень, а затем умножение. Как на примере ниже.
Пример где скобки не обязательны, но их лучше использовать
В прошлом конспекте был пример расчета будущей выручки на вкладе
principal = 100
apr = 0.1
years = 10
future_value = principal * ((1 + apr/12) ** (years * 12))
print(future_value) # 270.70414908622433
В этом примере я использовал дополнительные скобки, чтобы было проще увидеть какая часть выражения будет рассчитана первая. Хотя эти скобки не обязательны, так как приоритет оператора возведения в степень выше.
Эту формулу можно записать без скобок. И результат вычисления будет таким же.
Степень и унарный оператор справа
Если справа от оператора возведения в степень находится унарный оператор, то он вычисляется первым. Например
Запись выше равносильна такой записи
Степень и унарный оператор слева
Но, если унарный оператор находится слева от оператора возведения в степень, то приоритет в возведения в степень
В результате получилось -2.0, хотя по записи кажется что -4 возводится в степень 0.5. Но такая запись вычисляется так:
Если нужно взять именно квадратный корень от -4, то необходимо взять -4 в скобки
В результате получается комплексное число.
Пример умножения числа на само себя с добавлением единицы
Часто в программировании нужно умножать число само на себя с добавлением единицы. Следующая запись будет некорректна.
Чтобы вычисления были правильные необходимо использовать скобки.