Created
April 24, 2026 03:17
-
-
Save brandonhimpfen/59b187bfca230bfc8c4de8834475574c to your computer and use it in GitHub Desktop.
Python script to determine the final amount of a monthly savings plan. You are able to set the principle amount, the monthly payment, the interest rate and the term. The script also has the ability to compound the interest monthly, quarterly or annually.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def calculate_final_amount(principal, monthly_deposit, annual_interest_rate, num_of_years, compounding_period): | |
| # Convert interest rate to monthly rate | |
| monthly_interest_rate = (annual_interest_rate / 100) / 12 | |
| # Calculate the number of months | |
| num_of_months = num_of_years * 12 | |
| # Calculate the number of compounding periods | |
| if compounding_period == "monthly": | |
| num_of_compounding_periods = num_of_months | |
| elif compounding_period == "quarterly": | |
| num_of_compounding_periods = num_of_years * 4 | |
| elif compounding_period == "annually": | |
| num_of_compounding_periods = num_of_years | |
| else: | |
| raise ValueError("Invalid compounding period entered!") | |
| # Calculate the final amount | |
| final_amount = principal | |
| for _ in range(num_of_compounding_periods): | |
| final_amount += monthly_deposit | |
| final_amount *= (1 + monthly_interest_rate) | |
| return round(final_amount, 2) | |
| # Example usage | |
| principal_amount = float(input("Enter the principal amount: ")) | |
| monthly_deposit_amount = float(input("Enter the monthly deposit amount: ")) | |
| annual_interest_rate = float(input("Enter the annual interest rate: ")) | |
| num_of_years = int(input("Enter the number of years: ")) | |
| compounding_period = input("Enter the compounding period (monthly, quarterly, or annually): ") | |
| final_amount = calculate_final_amount( | |
| principal_amount, monthly_deposit_amount, annual_interest_rate, num_of_years, compounding_period | |
| ) | |
| print("The final amount after {} years is: {:.2f}".format(num_of_years, final_amount)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment