python基础--迭代器、生成器、内置函数、面向对象编程

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

    迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果

    迭代器:迭代取值的工具

    使用迭代器的原因:提供了一种不依赖于索引取值的方式

    可迭代对象:

        只有内置__iter__方法和__next__的都可以叫做可迭代对象

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

 

 

使用for循环进行遍历:

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象
for x in it:
    print (x, end=" ")
使用for循环对迭代器对象进行遍历

     StopIteration:这个异常用于标示迭代的完成,防止出现无限循环的情况,在__next__中我们可以设置在完成指定循环次数后触发StopIteration异常来结束迭代...

        

 

生成器:在python中,使用了yield的函数被称为生成器,跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解就是生成器就是迭代器,在调用生成器的过程中,每次遇到yield时函数就会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next方法时从当前位置继续运行。调用一个生成器函数,返回的就是迭代器对象

import sys
 
def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
 
while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()
使用yield实现斐波那契数列

 

 

内置函数:

    abs:求绝对值

    all:只要可迭代对象中有一个为False就返回False

    any:只要可迭代对象中有一个为True就返回True

    locals:当前语句无论在哪个位置,就会返回哪个位置所存储的所有名字

    globals:无论在哪里查看的都是全局名称空间

    callable:可调用的(可以加括号执行相应的功能)

    dir:获取当前对象名称空间里面的名字

    divmod:分页器

    enumerate:枚举

    eval,exec:推荐使用exec返回字符串内部的逻辑表达式

    isinstance:该方法判断对象是否属于某个数据类型

    pow:数学表达式

    round:保留几位小数

 

 

面向过程编程:这是一种思想(流水线思维),过程就是解决问题的步骤,面向过程的设计就好像是设计了一条工业流水线,是一种机械式的思维方式。

    优点:程序结构清晰、可以把复杂的问题简单化,流程化。

    缺点:可扩展性差,要是改动一个地方很可能要该多个地方,牵一发动全身

 

posted @ 2019-07-15 21:13  tulintao  阅读(169)  评论(0编辑  收藏  举报