Единственное, что связывает сильнее, чем сила, это скобки.Python (и любой другой язык, который изначально поддерживает оператор power, который я видел) следует арифметическому соглашению, так что вам не нужно запоминать различные наборы конфликтующих правил.Ваша операция может быть явно переписана следующим образом:
t - ((2 ** (j - 1)) * l)
Как вы указали, установка l = 0
отбрасывает большую часть вычислений.Просто он отбрасывает все, кроме t
.
Вы можете сделать такие вещи явными, используя функциональную форму оператора power.Любой из следующих импортов будет работать для приведенного ниже примера:
from math import pow
from operator import pow
from operator import __pow__ as pow
from numpy import pow
Похоже, вы хотели / ожидали
t - pow(2, (j - 1) * l)
Но вместо этого получили
t - pow(2, j - 1) * l