Формула для начисленных процентов: K_interrest = K_start * (1 + (p/100))**n
с p
в качестве вашей ставки и n
в годах. С этим мы можем поместить ваш код в удобную функцию. Ваш первоначальный фонд и ежегодные сбережения, умноженные на процентную ставку, получают ваш новый капитал. Это случается n
раза.
def calculate_savings(k, p, a, n):
for i in range(n):
k = (k+a) * (1 + (p/100))
print(f"{k:.2f}", "$") # will print your result with 2 decimal digits
capital = float(input("Enter initial capital: "))
interest_rate = float(input("Enter interest rate [%]: ")) # input in percent
annual_saving = float(input("Enter annual savings: "))
years_duration = int(input("Enter number of years of saving: ")) # years must be int here
calculate_savings(capital, interest_rate, annual_saving, years_duration)
Другая возможность заключается в использовании рекурсивной функции (функции, которая вызывает себя):
def calculate_savings(k, p, a, n):
if n <= 0:
print(f"{k:.2f}", "$")
else:
k = (k+a) * (1 + (p/100))
calculate_savings(k, p, a, n-1) # calculates k with one year less
Обычно считается хорошей практикой сохранять ваши код DRY (не повторяйся). Кроме того, когда ваш сценарий становится немного более существенным, вам следует рассмотреть возможность отлова ошибочных входных данных.