day13: 迭代器和生成器】的更多相关文章

三个作业: # 1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码 login_dic = {'alex':False} def login(func): def inner(*args,**kwargs): if not login_dic['alex']: usrname = input('用户名 : ') passwd = input('密 码 : ') with open('userinfo') as f: for…
一.迭代器 定义:器:包含了多个值的容器 迭代:循环反馈(一次从容器中取出一个值) 迭代器:从装有多个值的容器中一次取出一个值给外界 优点:不依赖索引,完成取值 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值) 二.可迭代对象 对象:python中的一个对象(装有地址的变量) 可迭代对象:有__iter__()方法的对象,调用该方式返回迭代器对象 可迭代对象有:str | list | tuple | dict | set | range() | file | 迭代器对象 | enum…
一.复习 1.闭包:定义在函数内部的函数(被函数嵌套的函数) 2.装饰器:闭包的一个应用场景 -- 为一个函数添加新功能的工具 3.开放封闭原则:不能修改源代码,不能修改调用方式,但可以对外提供增加新功能的特性 小点:多个装饰器运行流程 def o1(func): def inner(*args, **kwargs): result = func(*args, **kwargs) return result return inner def o2(func): def inner(*args,…
1,思考所有可以被for循环的:list,tuple,set,dict,range,enumerate,f,str,差不多了,为何这些数据类型可以被for循环呢? 2,一个标准的装饰器函数 from functools import wraps def wrapper(f): @wraps(f) def inner(*args,**kwargs): # 被装饰函数调用之前添加的功能 ret = f(*args,**kwargs) # 被装饰函数调用之后添加的功能 return ret retur…
一.迭代器 python 一切皆对象 能被for循环的对象就是可迭代对象 可迭代对象: str,list,tuple,dict,set,range 迭代器: f1文件句柄 dir打印该对象的所有操作方法 s = 'python' print(dir(s)) 执行输出: ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__…
一 迭代器 迭代器的由来pythone2.2引进的,是一种序列(也是一种数据类型),也是为类对象提供一个序列的入口. for 循环str list tuple dict set 文件句柄可迭代: s = 'abc' for i in s: print(i) 不可迭代 iterable for i in 55: print(i) 什么是可迭代对象?方法一: dir(被测对象) 如果 他含有__iter__ ,那这个对象就叫做可迭代对象.遵循可迭代协议 s = 'abc' print('__iter…
1.可迭代:当我们打印 print(dir([1,2]))   在出现的结果中可以看到包含 '__iter__', 这个方法,#次协议叫做可迭代协议 包含'__iter__'方法的函数就是可迭代函数 字符串.列表.元组.字典.集合都可以被for循环,说明他们都是可迭代的. 2.迭代器 iterator l = [1,2,3,4] l_iter = l.__iter__() #迭代器的生成 item = l_iter.__next__() #迭代器的使用,用此方法一一钓鱼迭代器中的数值 print…
1.迭代器 (1)可迭代对象 s1 = ' for i in s1: print(i) 可迭代对象 示例结果: D:\Python36\python.exe "E:/Python/课堂视频/day13视频与课堂笔记/day13课堂笔记/day13/02 迭代器.py" 1 2 3 True False Process finished with exit code 0 示例结果 int object is not iterable for i in 123: print(i) Int…
Python的迭代器. 生成器和修饰器 1. 迭代器是访问集合元素的一种方式,从第一个到最后,只许前进不许后退. 优点:不要求事先准备好整个迭代过程中的所有元素,仅仅在迭代到某个元素时才计算该元素,而在这之前或者之后,元素可以不存在或被销毁. 特点: 访问者是不需要关心迭代器内部的结构,仅需要通过next()方法不断去取下一个内容. 不能随机访问集合中的某个值,只能从头到尾依次访问. 访问到一半时不能往回退 便于循环比较大的数据集合,节省内存 names = iter(['alex','jack…
本节涉及内容: 1. 迭代器和生成器 2. 递归 3. 字符串格式化 4. 模块 内置模块 自定义模块 第三方模块 5. 序列化的模块 json pickle (一). 迭代器和生成器: 迭代器:  迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素.迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可…