函数,该函数将限制作为斐波那契级数的参数,并在Python3中打印到该限制

函数,该函数将限制作为斐波那契级数的参数,并在Python3中打印到该限制,python,python-3.x,Python,Python 3.x,我要写一个函数,把极限作为斐波那契级数的一个参数,然后打印到极限。这里,如果限制是fibonacci(10),那么输出应该是01123588 我试过: def fibonacci(number): a = 0 b = 1 print(a,end = ' ') print(b, end = ' ') for num in range( 2 , number): c = a + b a = b b =

我要写一个函数,把极限作为斐波那契级数的一个参数,然后打印到极限。这里,如果限制是
fibonacci(10)
,那么输出应该是
01123588

我试过:

def fibonacci(number):
    a = 0
    b = 1
    print(a,end = ' ')
    print(b, end = ' ')
    
    for num in range( 2 , number):
        c = a + b
        a = b
        b = c
        print(c, end = " ")
        

fibonacci(10)
结果是:

0 1 1 2 3 5 8 13 21 34

我该怎么办?

您只需添加一个检查,查看由
a+b
产生的数字是否将大于限制

for num in range( 2 , number):
        if a+b > number: return
        
        c = a + b
        a = b
        b = c
        print(c, end = " ")
输出:

0 1 1 2 3 5 8
break语句退出for循环,这样就不会打印超过限制的数字。您也可以使用
return
而不是
break
。但是,如果最终在for循环之后添加逻辑,则将无法访问该逻辑,因为
return
将退出整个函数

建议(由@OneCricketeer提供)

您也可以在此处使用
while
循环,而不是范围。这可以通过更清晰、更容易理解的代码实现相同的输出

while (a+b < number):
        c = a + b
        a = b
        b = c
        print(c, end = " ")
while(a+b
应该真正使用while循环而不是range@OneCricketeer很好的建议。我不想在OP上抛出一个完全不同的解决方案,但会包括这个建议。