迭代器
可迭代对象
'''
可迭代对象: 有__iter__()方法的对象,调用该方法返回迭代器对象
有哪些:str | list | tuple | dict | set | range() | file | 迭代器对象 | enumerate() | 生成器
'''
迭代器对象
'''
迭代器对象: 有__next__()方法的对象,也就是用该方法一次从迭代器对象中获取一个值,取出一个少一个
有哪些:file | enumerate() | 生成器
重点:
1.从迭代器对象中取元素,取一个少一个,如果要从头开始去,需要重新获得拥有所有元素的迭代器对象
2.迭代器对象也有__iter__()方法,调用后得到的是自己本身(当前含义几个元素,得到的就只有几个元素的迭代器对象)
'''
for循环迭代
'''
1.自动获取被迭代对象的迭代器对象
2.在内部一次一次调用__next__()方法取值;
3.自动完成异常处理
'''
生成器
def my_generator():
yield 1
yield 2
yield 3
g_obj = my_generator()
r1 = g_obj.__next__()
for v in g_obj:
print(v)
def fib(num):
n,prev,curr =0, 0,1
while n<num:
return curr
prev,curr = curr, prev + curr
n +=1