2015-09-28 86 views
0

编写一个函数,用于在给定的年数之后计算具有给定初始余额和利率的银行帐户的余额。假设每年的利息都是复合的。使用Python函数计算复合利息

我有错误“ValueError异常:不支持的格式字符‘I’,在指数28(×49)”

这里是我到目前为止的代码。

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) 
+0

你需要一个'''之间和InputB''(1 +(InputI',像这样:'Cinterest =(InputB *(1+(InputI%InputN))**(InputN * InputT) )' – javanut13

回答

2

这里是你会怎么做。

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() 
+0

上有一个值错误非常感谢! – GopherTech

1

您试图将您的变量用作函数。 试试这个:

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

Python和大多数其他编程语言,不要以为他们之间没有操作员两个相邻的数学表达式表示乘法。你缺少InputB之间的乘法运算符(*)和表达式的其余部分:

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

谢谢,现在我在I – GopherTech