Member 12872401 Ответов: 1

Как я построил программу для сложных процентов с ежемесячными взносами


Я хочу разработать программу для сложных процентов, позволяющую ежемесячно вносить взносы на Python. Синтаксис в сторону-нужна помощь с формулой.

Что я уже пробовал:

Init_Amt = input("Enter initial amount")
Interest_rate = input("Enter the interst rate")
Num_years = input("Number of years")
Monthly_Amount = input("Monthly Amount")

Init_Amt = float(Init_Amt)
Interest_rate = float(Interest_rate)
Num_years = int(Num_years)
Monthly_Amount = float(Monthly_Amount)

PV = Init_Amt
IR = Interest_rate
N = Num_years


N_m = N*12 #in terms of months
M = Monthly_Amount



def compound(PV, N, M, IR):
    for i in range(N):
        PV += (M * 12)
        FV = (PV*(1+IR)**N)
        print(i + FV)




if __name__ == "__main__":
    compound(PV, N, M, IR)

Peter Leow

Я вижу, что вы следовали решению 1, чтобы добавить отступ, но все еще не правы, вы не поняли работу отступа в Python, см. добавленный ответ в решении 1. Ни в коем случае не голосуйте против только потому, что это решение не сработало из-за вашего плохого понимания.

1 Ответов

Рейтинг:
0

Peter Leow

Вы никогда не говорите о проблеме, с которой столкнулись. Формула в стороне, я буду комментировать только ваш код, который является целью этого форума. Предлагаю вам вернуться к основному синтаксису Python, который представляет собой отступ блока кода, но вы не заметили этого в:

def compound(PV, N, M, IR):

и
if __name__ == "__main__":

Прочитай Лексический анализ-документация Python 3.5.2[^] и выясните это сами.

++ + + + [Раунд 2]+++++
Я видел, что вы добавили отступ, но вы все еще упускаете суть, я дам вам ответ ниже:
def compound(PV, N, M, IR):
    for i in range(N):
        PV += (M * 12)
        FV = (PV*(1+IR)**N)
        print(i + FV)

if __name__ == "__main__":
    compound(PV, N, M, IR)

Отступ-это способ Python группировать связанный код в виде блока, как и {}, используемый в других языках программирования.