Я не выполняю итерацию функции python должным образом. Соответствующие суммы не отображаются в результатах цикла - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь повторить эту функцию, чтобы получить скорректированный баланс кредитной карты, вычитая рассчитанные проценты из впоследствии уменьшенного баланса. Проще говоря, каждый месяц из баланса вычитается рассчитанная сумма, скажем, сумма, распределенная за 18 месяцев, или должна быть установленная сумма, которая выплачивается ежемесячно, скажем, 300 долларов. После внесения платежа баланс должен отражать это изменение, и так далее, и так далее - с правильно рассчитанным процентом, применяемым к каждой ежемесячной сумме. Мой вывод выглядит правильно отформатированным, однако суммы неверны. Есть идеи, что мне попробовать?

def calc_apr():
credit_card_limit = int(input('What is the limit on this credit card? $'))
credit_card_balance = int(input('How much do you owe on this credit card? $'))
credit_card_apr = int(input('What is the APR of this credit card?'))
apr_per_month = ((credit_card_apr / 365) * 30)
payback_term = int(input('In months, what is your desired payback duration term? Months:'))
monthly_payback_amount_without_interest = credit_card_balance / payback_term
payment_per_month = round(apr_per_month + monthly_payback_amount_without_interest, 2)
interest = payment_per_month - monthly_payback_amount_without_interest
owed = credit_card_balance - payment_per_month
monthly_apr = (((credit_card_apr / 365) * 30) * .010) * owed
updated_owed = round((owed / payback_term), 2) + (round((owed / payback_term), 2) * (credit_card_apr / 365))

print('Starting monthly interest: ', str(round(round((owed / payback_term), 2) * (credit_card_apr / 365), 2)))
print('------------------------------------------------------------------------------------------------------')
print('Your credit card\'s limit is currently $' + str(credit_card_limit) +
      ', and your interest rate on this card is ' + str(credit_card_apr) + '%. \n' +
      'This means that paying this monthly amount for ' + str(payback_term) +
      ' months, your initial payment will be $' + str(payment_per_month) + '. \n' +
      ' That payment amount is calculated by adding the monthly interest rate against the initial balance, ->' +
      '(' + str(round(apr_per_month, 2)) + '%) ' + '\n' 'plus the base ' + str(payback_term) +
      '-month monthly payment of' + str(round(monthly_payback_amount_without_interest, 2)) +
      '.\nOver the course of this payoff, you will pay $' + str(round(interest * payback_term, 2)) +
      ' in total interest charges for that span of time. \n' 'Listed below, are the subsequent payments required,\n'
      'as well as the relative interest charges against those balances.')
print('------------------------------------------------------------------------------------------------------')
while owed > 0:
    print('$' + str(round((credit_card_apr / 365) + owed)) + ' Monthly Balance remaining')
    print(str(round((owed / payback_term), 2)) + ' owed this month, plus a monthly interest payment of $' +
          str(round(round((owed / payback_term), 2) * (credit_card_apr / 365), 2)))
    print('Which comes to a total monthly payment of $' +
          str(round((round((owed / payback_term), 2) +
              round(round((owed / payback_term), 2) * (credit_card_apr / 365), 2)))))
    print('---------------------------------------------------------------------------------------------------')
    owed -= payment_per_month

calc_apr ()

...