我遇到打印和生成器问题。我需要:
除了上面的生成器之外,写一行代码打印所有数字的列表(与“所有数字”不同),小于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)])
答案 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]