擅长:python、mysql、java
<p>如果使用while循环遍历列表,那么在while循环中应该有一行执行操作的代码<em>。在</p>
<p>另外,在第二次迭代中i=2=len(cflist)时(不要忘了<a href="http://python-history.blogspot.com/2013/10/why-python-uses-0-based-indexing.html" rel="nofollow noreferrer">python uses 0 based indexing</a>),并且因为返回调用在while循环中,所以循环将被截断。在</p>
<p>这应该是有效的:</p>
<pre><code>def npv(cfList, r):
f = 0
i = 1
pv = 0
while f <= len(cfList):
pv += (cfList[f] / ((1 + r) ** i))
f += 1
i += 1
return pv
</code></pre>