我有一个非常基本的计算,我想循环:
month = 1
carryK = 104800 #Carrying capacity as per Q0
redcarryK = 0.998 #amount to reduce the carrying capacity to as given in part 4
newcarryK = (carryK*redcarryK)
我希望将这个计算循环一个12个月的周期,以便第1个月的newcarryK成为第2个月的carryK。
我已经尝试过了,而且我得到的只是12次相同答案的输出。
while month <=12:
print newcarryK
month = month + 1
答案 0 :(得分:0)
看起来缺少newcarryk计算。
while month <=12:
print newcarryK
newcarryK = (newcarryK*redcarryK)
month = month + 1
答案 1 :(得分:0)
如果仔细观察,这个计算就是经典的复利计算。为简洁起见,我们重新定义carryK = p
和redcarryK == r
。
现在,对于每个月,计算进行如下:
month 1 --> p * r
month 2 --> p * r ** 2
month 3 --> p * r ** 3
month 4 --> p * r ** 4
我猜你看到的模式了。您正在使用的程序是一种非常传统的程序方法。更多Pythonic方式如下:
p = 104800
r = 0.998
vals = [ p * r ** i for i in range(1, 13)]
在学习Python时,尝试使用列表推导等,这显着提高了可读性......