思路一:函数内部直接输出这么多项
def gen1_fb(n,i=0,a1=0,a2=1):
i += 1
a2 = a1 + a2
a1 = a2 - a1
print('第{}项是{}'.format(i,a1))
if i == n:
return
return gen1_fb(n,i,a1,a2)
n = int(input('请输入你想要生成的斐波那契数列的项数:'))
gen1_fb(n)
思路二:函数使用生成器生成
# 版本2:使用生成器进行生成
def gen2_fb(n,i=0,a1=0,a2=1):
while i < n:
i += 1
a2 = a1 + a2
a1 = a2 - a1
yield i,a1
fb_generator = gen2_fb(int(input('请输入你想要生成的斐波那契数列的项数:')))
for i,num in fb_generator:
print('第{}项是{}'.format(i,num))