还有另一个线程讨论Python中的Fibo系列。这是为了将代码调整为更多的pythonic。 How to write the Fibonacci Sequence in Python

我爱上我编写的用于解决Euler Q2计划的程序。我刚开始使用Python编写代码,每次这样做都会很高兴。Python的方式!您能建议一种更好的Pythonic方法吗?

Project Euler Q2。找出斐波那契数列中所有不超过400万的偶数项之和。

fib=[]
def fibo(a=-1,b=1,upto=4000000):
    if a+b>=upto:
        return
    else:
        a,b=b,a+b
        fib.append(b)
        fibo(a,b)

fibo()
even=[i for i in fib if not i%2]
print sum(even)

最佳答案

首先,我将fibo()用作生成器:

def fibo(a=-1,b=1,upto=4000000):
    while a+b<upto:
        a,b = b,a+b
        yield b

然后,我还要选择均匀性作为生成器,而不是列表理解。
print sum(i for i in fibo() if not i%2)

关于python - 用Python程序查找斐波那契数列。更多Pythonic方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/578379/

10-12 19:27