Прежде всего, Python не имеет объявлений переменных. Вам присвоено значение внутри l oop. Причина проста, прослеживается с помощью операторов print
.
В опубликованной версии вы меняете значение в начале каждой итерации l oop. Поскольку monthly_salary
зависит от annual_salary
, и вы меняете последнее на каждой итерации l oop, то первое изменяется соответствующим образом.
Когда вы присваиваете это значение только один раз, до l oop, затем он остается неизменным, пока вы повторяете месяцы своего алгоритма.