Python 为什么在这个程序中,对于1应该相同的区域,1提供的答案与2不同?

Python 为什么在这个程序中,对于1应该相同的区域,1提供的答案与2不同?,python,python-3.x,math,Python,Python 3.x,Math,我有这个代码,用来计算年存款的复利。问题是,在t的位置运行代码时,插槽中的数字给出的答案与运行代码时的数字2不同。这些应该给我每年的总答案。下面是代码 P = input("Input principal ") R = input("Input rate ") T = input("Input time ") t1 = float(input("Input times per year ")) p = float(P) r = float(R) t = float(T) d = float(in

我有这个代码,用来计算年存款的复利。问题是,在t的位置运行代码时,插槽中的数字给出的答案与运行代码时的数字2不同。这些应该给我每年的总答案。下面是代码

P = input("Input principal ")
R = input("Input rate ")
T = input("Input time ")
t1 = float(input("Input times per year "))
p = float(P)
r = float(R)
t = float(T)
d = float(input("deposit"))

zed = []
for num in range(int(t) + 1):
    zed.append(num)


# (1 + r/n)
body = 1 + (r / t1)
# nt
exponent = t1 * t
# P(1 + r/n)^nt
re = p * pow(body, exponent)

ked = []
for var in zed:
    body = 1 + (r / t1)
    exponent = t1 * t
    idekvar = (p + (d * var)) * pow(body, exponent)
    ked.append(idekvar)
    print (idekvar)

"""print ("With principal")
print (re)
print ("Without principal")
print (re-p)"""
它给了我一个

3.599999996 9.6 [3.599999996,9.6]

当我使用
p=3r=.2t=1t1=1
dep=5
时,对于相同的空格,它给出了不同的答案,应该是什么,但使用
t=2

4.32 11.52 18.72 [4.32,11.52,18.72]

为什么会这样?
如果您碰巧有任何代码可以这样做,您是否介意共享,以便我可以将我的代码与之进行比较?

@RoryDaulton已修复。我不明白为什么这会产生相同的输出。毕竟,你要用
t
@NicoSchertler乘以指数,好的,所以我想我需要乘以var而不是t。我该怎么办?你确定
t=2
会产生相同的结果吗?另外:
float
s不是实数。也许这只是使用
float
s时固有的近似错误的产物。在循环中,您有
body=1+r/t1
,并且您永远不会更改
r
t1
。您确定不需要依赖于指数的内容吗?因为你的代码的结果显然取决于
t
的值,因为在循环中你有
指数=t1*t
,并且假设没有其他东西依赖于
t
,当你改变
t
时,你显然会得到不同的结果。只有当基于
t
发生其他变化,从而平衡指数变化时,才能获得类似的结果…@RoryDaulton Fixed。我不明白为什么这会产生相同的输出。毕竟,你要用
t
@NicoSchertler乘以指数,好的,所以我想我需要乘以var而不是t。我该怎么办?你确定
t=2
会产生相同的结果吗?另外:
float
s不是实数。也许这只是使用
float
s时固有的近似错误的产物。在循环中,您有
body=1+r/t1
,并且您永远不会更改
r
t1
。您确定不需要依赖于指数的内容吗?因为你的代码的结果显然取决于
t
的值,因为在循环中你有
指数=t1*t
,并且假设没有其他东西依赖于
t
,当你改变
t
时,你显然会得到不同的结果。只有在
t
的基础上发生其他变化,从而平衡指数变化时,才能获得类似的结果。。。