MITx:6.00.1x使用Python的计算机科学和编程简介

2024-09-27 07:16:50 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我对Python很陌生。。。问题如下:

如果一个人每月只支付信用卡公司要求的最低月供款,则编写一个程序计算一年后的信用卡余额。

我目前的代码如下:

month = 1
minimumMonthlyPayment = (balance * monthlyPaymentRate)
totalPaid = 0.0

while month < 13:
    print "Month: " + str(month)
    print "Minimum Monthly Payment: " + str(round(minimumMonthlyPayment, 2))
    balance = (balance - (balance * monthlyPaymentRate)) * (1 + (annualInterestRate/12))
    minimumMonthlyPayment = (balance * monthlyPaymentRate)
    print "Remaining Balance: " + str(round(balance, 2))
    totalPaid += minimumMonthlyPayment
    month += 1

print "Total Paid: " + str(round(totalPaid, 2))
print "Remaining Balance: " + str(round(balance, 2))

以下是正确的输出:

Correct Output

所以所有的数字在两个输出中都是相同的,但我的总支付最终是1732.94,而不是正确的数额1775.55。我把我输出的数字加在一个侧面计算器上,结果是1775.55。我的代码中有什么东西会引起这种情况吗?在

以下是测试代码使用的变量的值:

^{pr2}$

Tags: 代码公司数字信用卡printbalancestrround
2条回答

在计算minimumMonthlyPayment利率之前,您正在重新计算余额。在

所以balance * monthlyPaymentRate在第8行和第9行得到了不同的金额,因为余额发生了变化。在

如果将balance * monthlyPaymentRate分配给这些行之前的一个变量,并将其用于两个计算,则会更正此问题。在

干得好!你的代码几乎是完美的。唯一的错误是8号线需要在9号线之前运行。你要改变余额,然后用改变后的余额来计算每月最低还款额。在更新余额之前,您需要计算每个月的最低月付款额。在

希望这有帮助!在


balance = 4213
annualInterestRate = 0.2
monthlyPaymentRate = 0.04
totalPaid = 0.0

month = 1
minimumMonthlyPayment = balance * monthlyPaymentRate

while month < 13:
    print "Month: " + str(month)
    print "Minimum Monthly Payment: " + str(round(minimumMonthlyPayment, 2))
    minimumMonthlyPayment = balance * monthlyPaymentRate
    balance = (balance - (balance*monthlyPaymentRate))*(1+(annualInterestRate/12))
    print "Remaining Balance: " + str(round(balance, 2))
    totalPaid += minimumMonthlyPayment
    month += 1

print "Total Paid: " + str(round(totalPaid, 2))
print "Remaining Balance: " + str(round(balance, 2))

相关问题 更多 >

    热门问题