Skip to main content
 首页 » 编程设计

python之for x in range(y) 与 while 循环 : Python

2025年05月04日13落叶无声

我在 problem 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() 

请您参考如下方法:

for 循环并不意味着“当 c == 4000000 时停止”。它的意思是“遍历序列 range(4000000),这是一个从 0 到 3999999 的数字列表,并运行循环体一次并将 c 设置为每个元素顺序”。