作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
还有另一个线程讨论 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/
我是一名优秀的程序员,十分优秀!