Python生成器、实现斐波那契数列
"""
生成器
按照一定规则不断产生新元素的对象
无法直接输出生成器里面的内容
生成器保存的是数据的算法/规则,每一次调用产生一个
生成器创建使用yield关键字
函数可以有返回值,返回值返回给调用者
yield 跟return功能类似,
return直接返回直观结果
yield返回给调用者的不是直观结果,是数据存取的算法、规则
可以使用next()函数调用生成器对象里面的内容
也可以使用for 循环遍历生成器对象
"""
简单的生成器
generator00 = (x for x in range(10))
print(generator00)
生成器函数
def get_generator(list00):
for i in list00:
yield i
list00 = [“炳钿”, “京城”, “诗清”, “俊凯”, “惠玲”, “志钰”,]
创建生成器对象
name_generator = get_generator(list00)
输出生成器内容
# 使用next调用
print(next(name_generator))
print(next(name_generator))
print(next(name_generator))
print("la")
print("la")
print("la")
print("la")
print("la")
print(next(name_generator))
# 使用for循环遍历
for namein name_generator:
print(name)
Python生成器实现斐波那契数列
斐波那契数列
a = 0 # 月份
b = 0 # 小兔子个数
c = 1 # 成年兔子
while a < 10:
b, c = c, b + c
print(b)
a += 1
调用函数
fib_generator = fib(10)
print("*" * 20)
print(next(fib_generator))
print(next(fib_generator))
print(next(fib_generator))
print(next(fib_generator))
print(next(fib_generator))
print(next(fib_generator))
print(next(fib_generator))
print(next(fib_generator))
输出结果:
********************
1
1
2
3
5
8
13
21