day03 (python进阶----迭代器----生成器)

一:迭代器
1、什么是迭代器
    迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代,迭代器是用来迭代取值的工具,而涉及到把多个值循环取出来的类型。
简单来说就是你外婆生了你妈,你妈生了你,你们是有关联的,而不是一个个体,必须要有你奶奶才有你。

2、迭代器又分为‘可迭代对象’和‘迭代器对象’

可迭代对象:就是内置有__iter__功能的对象,像我们所学的字符串、列表、元组、字典、集合、文件对象都属于可迭代对象。
迭代器对象:就是内置有__iter__功能且有__next__的功能的对象,当可迭代对象使用了__iter__功能赋值给一个变量,就会变成迭代器对象,而__next__的功能就是用来迭代取值的工具。

示例:

#这里依次按字符串、列表、元组、字典、集合、文件对象进行举例
info1='yeqing'
res1=info1.__iter__()
info2=['yeqing','牛逼','666']
res2=info2.__iter__()
info3=('yeqing1','帅逼','888')
res3=info3.__iter__()
info4={'yeqing3','苦逼','999'}
res4=info4.__iter__()
info5={'yeqing4':'123','shaofeng':'456'}
res5=info5.__iter__()
res6=open(r'user.txt',mode='rt',encoding='utf-8')
def func(x):
    while True:
        try:
            result=x.__next__()
            print(result)
        except StopIteration:
            break
func(res1)
func(res2)
func(res3)
func(res4)
func(res5)
func(res6)
res6.close()

二、生成器:

生成器简单来说就是踏马的自定义迭代器
自定义迭代器就是定义函数时加入了yield,在函数内一旦存在yield关键字,调用函数并不会执行函数体代码,而会返回一个生成器对象,生成器即自定义的迭代器,示例:

def my_range(start,stop,step=1):
    print('start...')
    while start < stop:
        yield start
        start+=step


res=my_range(1,7,3)
print(res.__next__())
print(res.__next__())
print(res.__next__())

生成器好处就是这里后面还可以打印,生成器的好处就是可以控制你的取值次数,你想取多少就打印多少次。

你可能感兴趣的:(python学习,python,开发语言,后端)