У меня возникла небольшая проблема со следующим кодом Python, который должен использовать цикл while и давать мне количество времени в годах, которое потребуется для удвоения инвестиций при заданной годовой процентной ставке.
Код: Выделить всё
initialInvestment = 10
intRate = 2
newBalance = initialInvestment
years = 0
if initialInvestment > 0: # Make sure user has a valid investment balance
while newBalance < (2 * initialInvestment):
newBalance += (newBalance * (intRate/100)) # Update balance
years += 1
print(f'At {years} year(s), you would have ${newBalance:,.2f}')
else:
print(f'Please enter an investment amount greater than zero.')
print(f'It would take {years} years to double your investment of ${initialInvestment:,.2f} at {intRate}%."')
Я использовал оператор печати в цикле while для отслеживания баланса и лет и заметил, что код добавляет дополнительный год перед выходом. Например, я использовал 10 долларов в качестве первоначальной инвестиции и 2% в качестве процентной ставки. Оператор печати показывает, что через 35 лет newBalance составит 20 долларов, что ровно вдвое больше, чем начальные инвестиции, но цикл выполняется еще раз. Я даже изменил условие, чтобы сказать while ... и newBalance != (2 * InitialInvestment), и код не остановился на 35 годах.
Признаюсь, мне не нужно отслеживать годовой баланс, поэтому я мог бы инициализировать годы до -1, но я бы предпочел понять, в чем проблема и как ее исправить.