''''''
'''
迭代器和生成器

迭代器
    可迭代协议 -- 含有iter方法的都是可迭代的
    迭代器协议 -- 含有next和iter的都是迭代器
    特点
        节省内存空间
        方便逐个取值，一个迭代器只能取一次
        
生成器 --- 迭代器
    生成器函数
        含有yield关键字的函数都是生成器函数
        生成器函数的特点
            调用之后函数内的代码不执行，返回生成器
            每从生成器中取一个值，就会执行一段代码，遇见yield就停止
            如何从生成器中取值：
                for：没有break会一直取，直到取完
                next：每次只取一个
                send：不能用在第一个，取下一个值的时候给上一个位置传一个新的值
                    使用send需要一个预激活，预激活可以放到装饰器中
                数据类型强制转换：一次性把所有数据都读取到内存里

    生成器表达式
        (条件成立想放在生成器中的值 for i in 可迭代的 if 条件)
    
    不取不干活！！！！！！！！！！！！
        
'''