Table of Contents
整理面向对象文档为anki
day复习
while循环,满足条件则一直循环
生成器
特点:循环一次,计算一次,返回一次(惰性,动态,延迟)本质:迭代器(__next__)+可迭代对象(__iter__)生成器函数:有yield生成器表达式:(for 变量 in 可迭代对象)
函数式编程
是一种思想,和面向对象是一个套路
函数作为参数:将核心逻辑传递,可以将方法做成工具类
lambda也叫回调函数
函数作为返回值:
切片:切片实在是太灵活了
list[0,-1] 代表是的从0到倒数第二个元素list[-1,0,-1]代表是从倒数第一个元素到正数第二个元素
回调函数
编程分两类:系统编程(system programming)和应用编程(application programming)
系统编程就是编写库(API),应用编程就是编写应用
有的库函数,需要传递一个参数,这个参数会被库函数调用,这样的函数叫做回调函数
dir
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法 __dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
type
一个参数返回对象类型, 三个参数,返回新的类型对象。
函数式编程,多态都是
隔离了客户端和(可迭代)对象
python不需要多个函数名,多个不同参数
不用重载函数,java就需要重载
python生成器,send函数
普通的生成器是生成器告诉调用者一些值send方法的生成器是调用者告诉生成器然后生成器在返回参数
python 高阶函数
filter(lambda,list) #过滤 返回值为新函数sorted(list,key=lambda,reserver=)map(lambda ,list)callable回调函数
闭包
闭包三要素:有一个内嵌函数,内嵌函数必须引用外部变量,外部函数返回值必须是内部函数
排序:
稳定排序 a==b ,a,b元素位置不变不稳定排序 a==b,a,b元素位置改变原地排序,排序过程不申请空间,只用原来空间交换非原地排序,申请空间用来排序时间复杂度:算法执行所消耗的时间
空间复杂度:算法所需内存大小
1.选择排序:选中一个元素,挨个与之后元素比较,将最大值放入,然后开始第二次循环
2.插入排序:从第二个变量开始,一直往左比,直到值不如左边的大