Используя поиск по разделению пополам, напишите программу, которая рассчитывает минимальный фиксированный ежемесячный платеж, необходимый для погашения баланса кредитной карты за 12 месяцев

#bisection

Вопрос:

Пожалуйста, помогите.. мой код возвращает неверный вывод. Я попытался отладить его несколькими способами, но безрезультатно.

кодировка: utf-8 —

«»» Создано 17 Чт июня 14:56:19 2021

напишите программу, которая рассчитывает минимальный фиксированный ежемесячный платеж, необходимый для погашения остатка средств на кредитной карте в течение 12 месяцев. «»»

 enter code here

balance = 320000
newbalance = balance
annualInterestRate = 0.2
monthlyInterestRate = annualInterestRate / 12
month = 0
Lower = balance / 12
Upper = (balance * (1  monthlyInterestRate)**12)/12.0                      
monthlyPayment = 0.01
middle = (Lower   Upper)/2 

while(month<=12):    
    middle = (Lower   Upper)/2    
    monthlyOutstanding = newbalance - middle
    updatedBalance = monthlyOutstanding   (monthlyInterestRate*monthlyOutstanding)
    newbalance = updatedBalance
    month =1 

    if  newbalance < 0 and newbalance < -monthlyPayment:
        
        Upper = middle            
        monthlyPayment =0.01
        newbalance = balance
    
                    
    if  newbalance > 0 and newbalance > monthlyPayment:
        Lower = middle
        monthlyPayment =0.01
        newbalance = balance
        
                    
    else:
        print('Lowest payment: ',str(round(middle,2)))
        break

middle = (Lower   Upper)/2