gpt4 book ai didi

python - 如何使用 Python 添加在 'while' 循环中生成的某些值

转载 作者:太空狗 更新时间:2023-10-30 02:05:48 24 4
gpt4 key购买 nike

我正在解决 a Project Euler problem如下所示:

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms."

所以我用这个脚本打印了高达四百万的斐波那契数列:

a = 0
b = 1
while b < 4000000:
print b
a, b = b, a+b

显然,我可以运行它并手动添加偶数,但我觉得我在作弊。

从技术上讲,我想我问了两个问题:

  1. 我怎样才能挑出晚上?
  2. 如何在不实际将它们分配给变量的情况下添加这些偶数?

哦,我敢肯定它非常明显,但我对...嗯,一般的编程还很陌生,我很容易被专家的冗长所迷惑。提前致谢!

最佳答案

如果您不喜欢变量赋值,您可能会喜欢 functional approach :

>>> from itertools import takewhile, ifilter

>>> def fib():
a, b = 0, 1
while True:
yield a
a, b = b, a+b

>>> def is_even(x):
return x % 2 == 0

>>> sum(ifilter(is_even, (takewhile(lambda x: x<4000000, fib()))))
4613732

关于python - 如何使用 Python 添加在 'while' 循环中生成的某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8622889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com