Python 每月用每日复利减去贷款付款

Python 每月用每日复利减去贷款付款,python,for-loop,Python,For Loop,我在想如何用每日复利减去每月的贷款。现在,我想我已经掌握了在10年期贷款中减去每日付款金额的正确代码: P = 20000 r = .068 t = 10 n = 365 payment = 200 for payment_number in xrange(1, n*t): daily_interest = P * (1+(r/n)) - P P = (P + daily_interest) - payment print P 如果可能的话,我希望仍然

我在想如何用每日复利减去每月的贷款。现在,我想我已经掌握了在10年期贷款中减去每日付款金额的正确代码:

P = 20000
r  = .068 
t  = 10
n  = 365

payment = 200

for payment_number in xrange(1, n*t):

    daily_interest = P * (1+(r/n)) - P

    P = (P + daily_interest) - payment

    print P

如果可能的话,我希望仍然打印每日余额,而是每月减去付款,而不是每天。起初,我认为可能使用xrange(1,30)的嵌套for循环,但我不确定它是否正常工作。提前感谢您的建议

插入if语句如何

P = P-200 if payment_number%30 == 0 else P
如果
payment\u number
变量是30的倍数,则会运行此操作。

每月”是一个复杂的概念。要完全处理月份,您需要使用datetime模块

from datetime import date, timedelta
date_started = date(2000,1,1)
假设您离开始日期还有123天,我们需要计算该日期:

date = date_started + timedelta(days=123)
>>> date
datetime.date(2000, 5, 3)
所以现在我们知道需要计算该日期和月初之间的天数,dateutil模块可以帮助我们完成这项工作(您必须下载它)


然后把“天”放在你已经拥有的函数中,你应该是好的。我留给你做的唯一一件事就是计算你的约会间隔了多少个月。

别忘了二月。
from dateutil.relativedata import relativedelta
firstofmonth_date = date_started + relativedelta(months=4)
tddays = firstofmonth_date - date_started
days = tddays.days