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)
利息计算器 让用户计算他们的利息在一定年限内复利后,他们将在银行中存入的金额。
注意: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)