python利用yield关键字实现斐波那契数列

斐波那契数列(Fibonacci):

F(1) = 1

F(2) = 1

F(3) = 2

......

F(n) = F(n-1) + F(n-2)

python生成器可以控制循环的迭代行为,即控制循环的方式,每次只输出一个值,在很大的程度上节约了大量的空间

代码如下:

# 斐波那契数列
def Fibonacci():
    n, a, b = 0, 0, 1
    number = int(input("请输入你要求的第N项数列:"))
    if number <= 0:
        number = int(input("请重新输入:"))
    while n < number:
	# 只有当程序运行到next()语句时,输出每次的运行结果
        yield b
        # 根据斐波那契数列的规律,进行倒包运算
        a, b = b, a + b
        n = n + 1
# 调用函数,将结果赋值给s
s = Fibonacci()
# 因为实现输出前N项的斐波那契数列值,若利用next(s)方法,则存在N个next(s)语句,显示语句累赘
# 因此采用for循环,遍历s中的数据,每次输出一个N值
for item in s:
    print(item)

猜你喜欢

转载自blog.csdn.net/qq_41292236/article/details/94589985