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.插入排序:从第二个变量开始,一直往左比,直到值不如左边的大