迭代器的应用
一、使用迭代器的目的
1、说明 :当在一个程序中需要用到很多个值时,
方案一:使用一个列表将这些值进行存储。什么时候用就什么时候取。
缺点:占用大量的内存空间
方案二:存储生成这些值的方式、什么时候使用就什么时候生成一个。
缺点:占用极小的内存空间,只占用产生这些值的方式的内存空间
比喻: 为了长期对抗疫情,所以要准备储备粮食,现有两种方案。
方案一:买大量的馒头放到冰箱中。
方案二:买面粉。吃一个做一个。
二、Python2.X中的【range】和【xrange】函数的区别
1、range函数:生成一个列表
2、xrange函数: 生成一个存储值的方式,即可迭代对象。
三、斐波那契数列
1、描述:即:除了第一个和第二个数外,其它每一个数都是前面两个数相加得到的结果。
示例:0,1,1,2,3,5,8,13,21,34,......
2、代码实现:
class Fibonacci(object):
    """斐波那契数列迭代器"""
    def __init__(self, all_nums):
        self.all_num = all_nums
        self.current_num = 0
        self.a = 0
        self.b = 1
    def __iter__(self):
        return self
    def __next__(self):
        if self.current_num < self.all_num:
            ret = self.a
            # 将两个数进行交换
            # 等同于: a,b = b,a+b
            self.a, self.b = self.b, (self.a + self.b)
            self.current_num += 1
            
            return ret
        else:
            raise StopIteration
fibo = Fibonacci(10)
for num in fibo:
    print(num)
运行结果:



                
            
        
浙公网安备 33010602011771号