如果一个人每月只支付信用卡公司要求的最低月供,写一个程序来计算一年后的信用卡余额。
我想写一个程序,打印出一年后的最后余额
balance = 4213
annualInterestRate = 0.2
monthlyPaymentRate = 0.04
month = 1
new_balance = (balance - (balance*monthlyPaymentRate))*(1+(annualInterestRate/12))
while month < 13:
print "Month: " + str(month)
print "Minimum monthly payment: " + str(round(minimum_monthly_payment, 2))
print "Remaining balance: " + str(round(new_balance, 2))
month += 1
我的输出显示:
Month: 1
Minimum monthly payment: 168.52
Remaining balance: 4111.89
Month: 2
Minimum monthly payment: 168.52
Remaining balance: 4111.89
Month: 3
Minimum monthly payment: 168.52
Remaining balance: 4111.89
但我应该得到这样的东西:
Month: 1
Minimum monthly payment: 168.52
Remaining balance: 4111.89
Month: 2
Minimum monthly payment: 164.48
Remaining balance: 4013.2
Month: 3
Minimum monthly payment: 160.53
Remaining balance: 3916.8
看起来你的价值观没有更新,因为你忘了每月更新余额!尝试在每个循环中更新一次
balance
变量,如下所示:此外,为了使您的代码更易于阅读(并且更容易理解Python),您可以使用Python的内置列表结构,而不是使用自己的while循环:
不需要变量
new_balance
,只需修改变量balance
:输出:
你做了3次同一行:
new_balance = (balance - (balance*monthlyPaymentRate))*(1+(annualInterestRate/12))
这里没有任何variabel,它将在每次while循环后更新。 您应该更新
balance
,以便每次都得到一个较低的数字。相关问题 更多 >
编程相关推荐