1

我有一个非常基本的计算要循环:

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。

我已经尝试过 if 和 while ,我得到的只是相同答案的输出 12 次。

while month <=12:
    print newcarryK
    month = month + 1
4

2 回答 2

0

如果你仔细看,这个计算就是经典的复利计算。为简洁起见,让我们重新定义carryK = predcarryK == 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 时,尝试使用列表推导等,这会显着提高可读性......

于 2014-03-03T08:15:10.890 回答
0

看起来缺少 newcarryk 计算。

while month <=12:
    print newcarryK
    newcarryK = (newcarryK*redcarryK)
    month = month + 1 
于 2014-03-03T07:11:30.770 回答