如何编写一行代码,用python中的生成器fibonacci进行打印

时间:2017-06-27 10:25:08

标签: python python-3.x printing generator fibonacci

我遇到打印和生成器问题。我需要:

  

除了上面的生成器之外,写一行代码打印所有数字的列表(与“所有数字”不同),小于1000,并且在Fibonacci序列中也可以被3整除0,1

我的发电机:

def fibonacci(x,y):
    a, b= x, y
    while True:
        yield a
        a, b = b, a + b

def fibonacci_until(x,y,n):
    a, b = x, y
    while b <=n:
        yield a
        a, b = b, a + b

我的尝试:

print([for f in fibonacci(0,1) if ((f % 3) == 0) and (f<1000)])

2 个答案:

答案 0 :(得分:0)

好的,你需要这个修改:

def fibonacci_until(x,y,n):
    a, b = x, y
    while b <=n:
        yield a
        a, b = b, a + b

print([f for f in fibonacci_until(0,1, 1000) if ((f % 3) == 0)])

你有错误的数组生成,也应该使用不会无限的方法:)

答案 1 :(得分:0)

您可以使用fibonacci_until生成器

执行此操作
[f for f in fibonacci_until(0,1, 1000) if f % 3 == 0]