我再次尝试项目欧拉问题,在问题2中,我被要求找到斐波纳契序列中所有偶数的总和低于400万.我能够使用下面的代码使用While循环(在代码中显示为注释),但不使用for循环(这给了我很多数字,并且'c'方式超过400万.
为什么for循环不起作用?
谢谢.
def fibo():
z=[]
a=1
b=1
c=0
for c in range(0,4000000): #doesn't work; works with while (c<4000000)
c = a+b
if c%2 == 0 and c<4000000:
z.append(c)
a=b
b=c
print c
print 'sum is',sum(z)
fibo()
Run Code Online (Sandbox Code Playgroud)
for循环并不意味着"停止时c == 4000000".它意味着"迭代序列range(4000000),这是一个从0到3999999的数字列表,并运行循环体一次,c设置为序列的每个元素".