如何在python中编写一行用生成器斐波那契打印的代码

如何在python中编写一行用生成器斐波那契打印的代码,python,python-3.x,printing,generator,fibonacci,Python,Python 3.x,Printing,Generator,Fibonacci,我的打印和生成器有问题。我需要: 除上述生成器外,编写一行代码,打印小于1000且在斐波那契序列中可被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:

我的打印和生成器有问题。我需要:

除上述生成器外,编写一行代码,打印小于1000且在斐波那契序列中可被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
def fibonacci(x,y):
a、 b=x,y
尽管如此:
产生
a、 b=b,a+b
def fibonacci_直到(x,y,n):
a、 b=x,y

虽然b正常,但您需要进行以下修改:

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)])
def fibonacci_直到(x,y,n):
a、 b=x,y

而b你可以用你的
fibonacci\u直到
generator

[f for f in fibonacci_until(0,1, 1000) if f % 3 == 0]
打印([0,3,21,144])
–没有人说你必须使用发电机…
[f for f in fibonacci_until(0,1, 1000) if f % 3 == 0]