GopherTech
GopherTech

Reputation: 59

Calculating Compound Interest using Python functions

Write a function that computes the balance of a bank account with a given initial balance and interest rate, after a given number of years. Assume interest is compounded yearly.

I am having the error " ValueError: unsupported format character 'I' (0x49) at index 28"

Here is my code so far.

def BankBalance():
    InputB = 1000
    return InputB
    print("Your initial balance is $1000")

def Interest():
    InputI = 0.05
    return InputI
    print("The rate of interest is 5%")

def CountNumber():
    InputN = float(input("Please enter the number of times per year you would like your interest to be compounded: "))
    return InputN

def Time():
    InputT = float(input("Please enter the number of years you need to compund interest for:"))
    return InputT

def Compount_Interest(InputB, InputI, InputT, InputN):
    Cinterest = (InputB*(1+(InputI % InputN))**(InputN * InputT))
    print("The compound interest for %.InputT years is %.Cinterest" %Cinterest)

B = BankBalance()
I = Interest()
N = CountNumber()
T = Time()
Compount_Interest(B, I, N, T)

Upvotes: 0

Views: 4109

Answers (3)

user5317994
user5317994

Reputation:

Here is how you would do it.

def main():
# Getting input for Balance
    balance = float(input("Balance: $ "))
# Getting input for Interest Rate
    intRate = float(input("Interest Rate (%) : "))
# Getting input for Number of Years
    years = int(input("Years: "))
    newBalance = calcBalance(balance, intRate, years)

    print ("New baance:  $%.2f"  %(newBalance))
def calcBalance(bal, int, yrs):
    newBal = bal
    for i in range(yrs):
        newBal = newBal + newBal * int/100
    return newBal

# Program run
main()

Upvotes: 2

Mureinik
Mureinik

Reputation: 311518

Python, and most other programming languages, don't assume that two adjacent mathematical expressions with no operator between them means multiplication. You are missing a multiplication operator (*) between InputB and the rest of the expression:

Cinterest = (InputB * (1+(InputI % InputN))**(InputN * InputT))
# Here -------------^

Upvotes: 1

Joseph Seung Jae Dollar
Joseph Seung Jae Dollar

Reputation: 1066

You are trying to use your variable as a function. Try this instead :

Cinterest = (InputB * (1+(InputI % InputN))**(InputN * InputT))

Upvotes: 1

Related Questions