函数,该函数将限制作为斐波那契级数的参数,并在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上抛出一个完全不同的解决方案,但会包括这个建议。