Python 中的利息计算器

Interest Calculator In Python

利息计算器 让用户计算他们的利息在一定年限内复利后,他们将在银行中存入的金额。

注意:A = P(1+r)^t 其中 A = 总额,P = 本金,r = 利率,t = 时间。

这是我试过的:

principal = input("How much money do you currently have in the bank?")
rate = input("What is your interest rate?")
time = input("Over how many years is the interest compounded?")
actual_principal = float(principal)
actual_rate = float(rate)
actual_time = int(time)

#TODO: Calculate the total amount and print the result
A = (actual_principal(1 + actual_rate) ^ actual_time) 
print(A)

我使用 actual_principal、actual_rate 和 actual_time 将字符串转换为(精确的)整数...我使用 float 而不是 int 因为 float 将保持输入小数,对吗?

但是我在第 9 行收到错误消息

TypeError: 'float' object is not callable on line 9

我假设 'float' 对象指的是 actual_principal 或 actual_rate,或两者,因为它们是我转换的两个值。那么,为什么它们不是可调用的呢?我怎样才能修复这个程序来正确计算利息?谢谢!

编辑

了解到 python 中的幂函数是 ** 并且 python 语法中不存在隐含的乘法运算符。修改我的等式,使其看起来像这样:

final_actual_rate = actual_rate + 1
B = actual_principal * final_actual_rate
A = B ** actual_time
print(A)

在 "How much money do you currently have in the bank?" 中输入 13.58,"What is your interest rate?" 中输入 0.3,"Over how many years is the interest compounded?" 中输入 5 时,我得到的答案是 1714808.43561 - 所以计算器有效!

编辑 2

用这个方程替换了我的方程 - 这是创建利息计算器的更好/更简洁的方法 - 尽管两者都会得到相同的结果:

A = math.pow(actual_principal*(1 + actual_rate) , actual_time) 
print(A)
import math
principal = input("How much money do you currently have in the bank?")
rate = input("What is your interest rate?")
time = input("Over how many years is the interest compounded?")
actual_principal = float(principal)
actual_rate = float(rate)
actual_time = int(time)

#TODO: Calculate the total amount and print the result
A = math.pow(actual_principal*(1 + actual_rate) , actual_time) 
print(A)

你所拥有的有一些问题。 ^ 不是您认为的 Python。 ^ 是异或二元运算符,不是幂。如果你想要力量,你使用 math.pow() module.

也用action_principal(1 + actual_rate)是错误的。您正在尝试使用参数 1 + actual_rate 调用函数 action_principal 而不是将其相乘。请尝试 *

您的代码是错误的:您将整个方程提升为实际时间的幂,而不是仅提升 (1+r) !!! 检查这个:

import math
principal = input("How much money do you currently have in the bank?")
rate = input("What is your interest rate?")
time = input("Over how many years is the interest compounded?")
actual_principal = float(principal)
actual_rate = float(rate)
actual_time = int(time)

#TODO: Calculate the total amount and print the result

A = math.pow((1 + actual_rate) , actual_time)
B = actual_principal*A


print(B)