摘要:
迭代器 掌握for循环 实际上for循环的本质,就是将一个可迭代的变成迭代器 每一次从中取值都相当于执行了一次next 如果是迭代器,那么只能取一次值 生成器 - 本质就是迭代器 生成器函数(返回值是生成器) : 处理比较复杂的逻辑 yield的形式返回值,并且再一次调用中可以多次执行yield 生 阅读全文
摘要:
一.迭代器-概念 可迭代协议:内部含有__iter__方法的值/变量都是可迭代的 如何得到一个迭代器:可迭代变量.__iter__()返回一个迭代器 迭代器协议:内部含有__iter__方法和__next__方法的值/变量都是迭代器 迭代器的特点:节省内存,惰性运算,一次性取值,只能按顺序取 可迭代 阅读全文
摘要:
一.昨日内容回顾 生成器 本质就是迭代器 特点: 1.省内存 2.惰性机制 3.只能向前,不能反复 生成器函数 函数中包含yield. yield表示返回和return,分段执行一个函数 def func(): pass yield g = func() 此时不执行函数,创建生成器对象 g.__ne 阅读全文
摘要:
一.昨日内容回顾 1.函数名 函数名是一个变量名 可以作为集合类的元素 可以作为参数进行传递 def func(fn): fn() 可以作为返回值返回 def outer(): def inner(): xxx return inner 2.闭包 内层函数对外层函数的变量的访问 def outer( 阅读全文
摘要:
一.昨日内容回顾 函数的进阶 动态传参 *args : 位置参数的动态传参 **kwargs: 关键字参数的动态传参 形参:聚合 实参:打散 顺序:位置参数>*args >默认值 >**kwargs 作用域和名称空间 全局作用域:内置+全局 局部作用域:局部 locals() 查看当前作用域中的名字 阅读全文
摘要:
一.昨日内容回顾 函数: 定义:对功能或者动作的封装 def 函数名(形参): 函数体 函数名(实参) return: 返回,当程序运行到return的时候,终止函数的执行 一个函数一定拥有返回值 1.什么都不写,返回None 2.只写return,返回None 3. return 值,返回一个值 阅读全文
摘要:
一.昨日内容回顾 文件操作 open(文件路径,mode="模式",encoding="编码") 文件路径: 1.绝对路径 从磁盘根目录寻找 2.相对路径 相对于当前程序所在的文件夹 ../上一层文件夹 模式: r 只读,只读取内容不能写入内容 w 只写, open的时候会,判断文件是否存在,如果不 阅读全文
摘要:
一.昨日内容回顾 .1.基础部分的补充 join() 把列表变成字符串, 拼接 split() 切割 删除: 列表和字典不能在循环的时候进行删除. 把要删除的内容记录在一个新列表中,然后循环新列表,删除老列表(字典) fromkeys() 返回创建的新字典 fromkey("abc",[]) {a: 阅读全文
摘要:
一.昨日内容回顾 小数据池,常量池 id()内存地址 is == 的区别 is 判断的是内存地址 == 判断的是值 存在的意义: 快速的创建字符串,整数,布尔值的对象 帮你节省内存 解码和编码 encode() 把字符串编码成bytes类型 decode() 把bytes类型解码成字符串 二.今日主 阅读全文
摘要:
一.昨日内容回顾 字典: 由{}表示,内部存储key:value 要求: key不能重复 key必须可哈希.不可变 value没有限制 没有索引和切片 增删改查 新增: dic.[新key]=value dic.setdefault(key,default) 删除: pop(key) popitem 阅读全文