Я новичок в Python и вообще программирую.Я пытаюсь использовать цикл while с вложенным циклом for, чтобы вычислить самый низкий процент заработной платы, который может быть сохранен и который достигнет цели экономии в течение 36 месяцев.Код также включает в себя функции применения полугодового повышения заработной платы каждые 6 месяцев и применения полученных процентов к экономии.
Когда я запускаю свой код, это приводит к бесконечному циклу, и я не былспособен увидеть, что его вызывает.
total_cost = 1000000
semi_annual_raise = 0.07
down_payment = 0.25*total_cost
starting_salary = float(input("What is your annual salary?: "))
monthly_salary = starting_salary/12.0
r = 0.04
steps = 0
epsilon = 100
low = 0
high = 10000
portion_saved = (high + low)/2.0
current_savings = 0
raise_counter = 0
while abs(current_savings - down_payment) > epsilon:
current_savings = 0
for months in range(36):
current_savings += (current_savings*r/12) + (monthly_salary*
(portion_saved/10000))
if raise_counter == 6:
monthly_salary += monthly_salary*semi_annual_raise
raise_counter = 0
raise_counter += 1
if current_savings < down_payment:
low = portion_saved
else:
high = portion_saved
portion_saved = (high + low)/2.0
steps += 1
raise_counter = 0
print ("Number of steps =", steps)
print ("Optimal % to save:", portion_saved/10000)