今日内容:1.迭代器(****)2.生成器(***)3.生成器表达式(*****)4.面向过程编程(*****)5.包的使用(***)6.常用模块    logging (*****)    re (*****) 一.迭代器 1.什么是迭代器    迭代器就是迭代取值的工具    迭代是一个重复的过程,但是每一次重复都是基于上一次的结果而进行的2.为何要用迭代器    针对没有索引的数据类型,如:字典,集合,文件,要想迭代取出其中包含的一个个的值    python解释器必须提供一种能够不依赖于…
一.yield表达式形式 1 #装饰器,初始化含yield表达式的生成器 def init(func): def wrapper(*args,**kwargs): g=func(*args,**kwargs) next(g) return g return wrapper @init def eater(name): print('%s ready to eat'%name) list=[] while True: food=yield list list.append(food) print(…
先来看一个例子 def foo(): print("starting...") while True: res = yield print("res:",res) g = foo() next(g) 在上面的例子里,因为foo函数中有yield关键字,所以foo()函数的执行结果g是一个生成器,此时可以使用next(g)或者g.__next__()方法触发生成器的执行 程序的执行结果为 starting... 使用next(g)触发生成器的执行时,程序会按照正常的顺…
生成器 1.什么是生成器? 生成的工具. 生成器是一个 "自定义" 的迭代器, 本质上是一个迭代器. 2.如何实现生成器 但凡在函数内部定义了的yield, 调用函数时,函数体代码不会执行, 会返回一个结果,该结果就是一个生成器. yield: 每一次yield都会往生成器对象中添加一个值. - yield只能在函数内部定义 - yield可以保存函数的暂停状态 yield与return: 相同点: 返回值的个数都是无限制的. 不同点: return只能返回一次值,yield可以返回多…
本章内容 迭代器 面向过程编程 一.什么是迭代 二.什么是迭代器 三.迭代器演示和举例 四.生成器yield基础 五.生成器yield的表达式形式 六.面向过程编程 ============================================================ 一.什么是迭代 迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果.每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭代的初始值. # 我们以前学习的while按照如下执…
python基础-迭代器.生成器 1 迭代器定义 迭代的意思是重复做一些事很多次,就像在循环中做的那样. 只要该对象可以实现__iter__方法,就可以进行迭代. 迭代对象调用__iter__方法会返回一个迭代器,所谓的迭代器就是具有next方法的对象.(在调用next方法时不需要任何参数).在调用next方法时,迭代器会返回它的下一个值.如果next方法被调用,但迭代器没有值可以返回,就会引发一个StopITeration异常. 一个实现了__iter__方法的对象是可迭代的,一个实现了nex…
迭代器:迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问完结束.迭代器只能往前不会后退 迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果 迭代器:迭代取值的工具 使用迭代器的原因:提供了一种不依赖于索引取值的方式 可迭代对象: 只有内置__iter__方法和__next__的都可以叫做可迭代对象 >>> list=[1,2,3,4] >>> it = iter(list) # 创建迭代器对象 >>> print (next(i…
Python之路,Day10 = Python基础10 生成器表达式: (i for i in range(10) if i > 5)os.walk(r'文件路径')返回一个迭代器, 第一次next:包含一个元组,元组中有三个元素,(路径,路径包含的所有文件夹,路径包含的所有文件) 第二次next:包含一个元组,元组中有三个元素,(上面第二个元素中的第一个路径,前面那个路径包含的所有文件夹,前面那个路径包含的所有文件) 1.x = yield #yield的表达式的应用,可以通过 yield 向…
上节课复习:1. 函数的递归调用 在调用一个函数的过程中又直接或者间接地调用了函数本身称之为函数的递归 函数的递归调用有两个明确的阶段: 1. 回溯 一层一层地调用本身 注意: 1.每一次调用问题的规模都必须有所减少 2.必须有一个明确的结束条件或者进入递归的条件 2. 递推 往回一层一层的推算出结果 2. 二分法 3.三元表达式 res=条件成立情况下的返回值 if条件 else条件不成立情况下的返回值 4.列表生成式 [for i in range(10) if i > 3] 5.字典生成式…
一.迭代器 1.迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果 迭代器:迭代取值的工具 2.迭代器给你提供了一种不依赖于索引取值的方式 3.可以迭代取值的对象:字符串,列表,元组,字典,集合等 4.可迭代对象:内置有__iter__方法的都叫做可迭代对象 5.针对双下划线开头和结尾的方法:读法是双下+方法名 6.基本数据类型中,是可迭代对象的有:str.list.tuple.dict.set 文件对象(执行内置的__iter__之后还是本身,没有任何变化):文件对象本身就是迭代器…