思路一:函数内部直接输出这么多项
def gen1_fb(n,i=0,a1=0,a2=1):i += 1a2 = a1 + a2a1 = a2 - a1print('第{}项是{}'.format(i,a1))if i == n:returnreturn 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 += 1a2 = a1 + a2a1 = a2 - a1yield i,a1fb_generator = gen2_fb(int(input('请输入你想要生成的斐波那契数列的项数:')))for i,num in fb_generator:print('第{}项是{}'.format(i,num))
