还有另一个线程讨论 Python 中的斐波纳奇系列。这是为了将代码调整为更 pythonic。 How to write the Fibonacci Sequence in Python
我爱上了我为解决 Project Euler Q2 而编写的这个程序。我刚开始使用 Python 进行编码,每次我都以 Pythonic 方式进行编码时感到很高兴!你能建议一个更好的 Pythonic 方法来做到这一点吗?
Project Euler Q2 .找出斐波那契数列中不超过四百万的所有偶数项的总和。
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)
最佳答案
使用生成器是一种生成长序列同时保留内存的 Pythonic 方式:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
import itertools
upto_4000000 = itertools.takewhile(lambda x: x <= 4000000, fibonacci())
print(sum(x for x in upto_4000000 if x % 2 == 0))
关于查找斐波那契数列的 Python 程序。更Pythonic的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/578379/