python 序列化,常用模块

生成器与迭代器 

生成器

 在 Python 中,使用了 yield 的函数被称为生成器(generator)。

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行 next()方法时从当前位置继续运行。

def func(n):                # 生成器函数                              
    a, b, counter = 0, 1, 0                                      
    while True:                                                  
        if (counter > n):                                        
            return                                               
        yield a                                                  
        a,b = b,a+b                                              
        counter += 1                                             
f = func(10)                # f 是一个迭代器,由生成器返回生成                  
while True:                                                      
    try:                                                         
        print (next(f), end=" ")                                 
    except StopIteration:                                        
        sys.exit()                                               

执行结果:

0 1 1 2 3 5 8 13 21 34 55 

迭代器

迭代是Python最强大的功能之一,是访问集合元素的一种方式。。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。next()=obj.__next__()

字符串,列表或元组对象都可用于创建迭代器:

l =[1,2,3,4]                                             
it = iter(l)                #创建迭代器对象                     
print(it.__next__())        #输出迭代器的下一个元素                 
print(it.__next__())                                     
print(next(it))                                          
print(next(it))                                          

也可以遍历

l =[1,2,3,4]                                 
it = iter(l)                #创建迭代器对象         
for i in it:                                 
    print(i)                                

执行结果:

1
2
3
4

初识递归

 递归就是直接或者间接调用函数本身,递归时要定义一个条件退出,防止无限循环。

def func(num):                               
     num += 1                                
     if num > 5:                             
         return "END {:d}".format(num)       
     else:                                   
         print(num)                          
         return func(num)                    
print(func(1))                               

执行结果:

2
3
4
5
END 6 

json与pickle

 

json

 

pickle

 

time、datetime、logging模块

 

posted @ 2016-06-16 01:08  星星by~  阅读(524)  评论(0编辑  收藏  举报