калькулятор будущей стоимости ежемесячных инвестиций - Python - PullRequest
0 голосов
/ 11 октября 2018

Я новичок в python и пытаюсь написать программу, которая будет рассчитывать будущую стоимость ежемесячных инвестиций.Вот что у меня есть:

    #display a welcome message
    print("Welcome to the Future Value Calculator")
    print()

    choice = "y"
    while choice.lower() == "y":
        monthly_invest = int(input("Enter monthly investment:\t"))
        yearly_interest_rate = float(input("Enter yearly interest rate:\t"))
        years = int(input("Enter number of years:\t\t"))

        #convert yearly values to monthly values
        monthly_interest_rate =  yearly_interest_rate / 12 / 100
        months = years * 12
        future_value = 0

        future_value += monthly_invest
        monthly_amount = future_value * monthly_interest_rate
        future_value += monthly_amount

        print()

        #display the result
        for i in range(years):
            print("Year = " + str(i+1) + "\t" + "Future value: " + 
            str(round(future_value)))

        #see if the user wants to continue
        print()
        continue_runs = (input("Continue (y/n)? "))

    print("Bye!")

Вот как должен выглядеть результат: enter image description here

У меня есть базовая схемаработает хорошо.Я не очень хорош в математической части. Кто-нибудь может мне помочь с этим?Кроме того, может кто-нибудь сказать мне, как заставить "Пока" распечатать, когда пользователь больше не хочет продолжать?Прямо сейчас, это просто возвращается к началу, когда вы нажмете n.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вместо того, чтобы пока вы можете выйти из цикла, используя break.Я оставлю тебя, чтобы исправить математику

#display a welcome message
print("Welcome to the Future Value Calculator\n")

monthly_invest = int(input("Enter monthly investment:\t"))
yearly_interest_rate = float(input("Enter yearly interest rate:\t"))
years = int(input("Enter number of years:\t\t"))

#Yearly values to monthly values

monthly_interest_rate =  yearly_interest_rate / 12 / 100
months = years * 12
future_value = 0

for i in range(years):

    future_value += monthly_invest
    monthly_amount = future_value * monthly_interest_rate
    future_value += monthly_amount

    print("\nYear = " + str(i+1) + "\t" + "Future value: " +  str(round(future_value)))

    #Is the loop over?
    if i == years-1:
        break
    #Does the user want to continue?
    continue_runs = (input("\nContinue (y/n)? "))
    if continue_runs.lower()=='n':
        break        

print("Bye!")
0 голосов
/ 11 октября 2018

Цикл while проверяет переменную choice каждый раз, когда она повторяется.Когда вы получаете пользовательский ввод, вы устанавливаете ответ на continue_runs вместо choice.Вы, вероятно, получите право функционально, если вместо этого вы введете пользовательский ввод choice.

Чтобы рассчитать будущую стоимость после выплат по временным рядам, вы будете использовать уравнение F / A.Я нашел этот веб-сайт с некоторыми общими формулами: https://www.me.utexas.edu/~me353/lessons/S2_Evaluation/L02_Equivalence/factor_formulas.html

F = A [(1 + i) ^ N - 1] / i

Тот, который вы ищете, это "Унифицированная серияСоставной Фактор суммы ".Вы будете использовать i в качестве месячной процентной ставки (годовой ставки) / 12.N - общее количество месяцев.Затем вы умножаете это на А, который является ежемесячным взносом.

...